summaryrefslogtreecommitdiff
path: root/packaging/Debian/debian/patches/samba.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/Debian/debian/patches/samba.patch')
-rw-r--r--packaging/Debian/debian/patches/samba.patch199
1 files changed, 199 insertions, 0 deletions
diff --git a/packaging/Debian/debian/patches/samba.patch b/packaging/Debian/debian/patches/samba.patch
new file mode 100644
index 0000000000..be251861cb
--- /dev/null
+++ b/packaging/Debian/debian/patches/samba.patch
@@ -0,0 +1,199 @@
+--- samba-2.2.2.cvs20020120.orig/source/client/smbmount.c
++++ samba-2.2.2.cvs20020120/source/client/smbmount.c
+@@ -719,7 +719,7 @@
+ *lp = 0;
+ pstrcpy(password,lp+1);
+ got_pass = True;
+- memset(strchr(opteq+1,'%')+1,'X',strlen(password));
++ memset(strchr(opteq+1,'%')+1,'\0',strlen(password));
+ }
+ if ((lp=strchr(username,'/'))) {
+ *lp = 0;
+@@ -729,7 +729,7 @@
+ !strcmp(opts, "password")) {
+ pstrcpy(password,opteq+1);
+ got_pass = True;
+- memset(opteq+1,'X',strlen(password));
++ memset(opteq+1,'\0',strlen(password));
+ } else if(!strcmp(opts, "credentials")) {
+ pstrcpy(credentials,opteq+1);
+ } else if(!strcmp(opts, "netbiosname")) {
+@@ -822,7 +822,7 @@
+ *p = 0;
+ pstrcpy(password,p+1);
+ got_pass = True;
+- memset(strchr(getenv("USER"),'%')+1,'X',strlen(password));
++ memset(strchr(getenv("USER"),'%')+1,'\0',strlen(password));
+ }
+ strupper(username);
+ }
+--- samba-2.2.2.cvs20020120.orig/source/script/installbin.sh
++++ samba-2.2.2.cvs20020120/source/script/installbin.sh
+@@ -11,7 +11,7 @@
+ shift
+ shift
+
+-for d in $BASEDIR $BINDIR $LIBDIR $VARDIR $BASEDIR/private; do
++for d in $BASEDIR $BINDIR $LIBDIR $VARDIR; do
+ if [ ! -d $d ]; then
+ mkdir $d
+ if [ ! -d $d ]; then
+@@ -33,9 +33,11 @@
+ chmod $INSTALLPERMS $BINDIR/$p2
+
+ # this is a special case, mount needs this in a specific location
+- if [ $p2 = smbmount ]; then
+- ln -sf $BINDIR/$p2 /sbin/mount.smbfs
+- fi
++# Commented out for the Debian Samba package. We take care of this
++# important symlink in debian/rules. (peloy@debian.org)
++# if [ $p2 = smbmount ]; then
++# ln -sf $BINDIR/$p2 /sbin/mount.smbfs
++# fi
+ done
+
+
+--- samba-2.2.2.cvs20020120.orig/source/script/installswat.sh
++++ samba-2.2.2.cvs20020120/source/script/installswat.sh
+@@ -48,8 +48,8 @@
+ for f in $SRCDIR../docs/htmldocs/*.html; do
+ FNAME=$SWATDIR/help/`basename $f`
+ echo $FNAME
+- cp $f $FNAME || echo Cannot install $FNAME. Does $USER have privileges?
+- chmod 0644 $FNAME
++ ln -s ../../../../doc/samba-doc/htmldocs/`basename $f` $FNAME || echo Cannot install $FNAME. Does $USER have privileges?
++# chmod 0644 $FNAME
+ done
+
+ # Install "server-side" includes
+@@ -63,7 +63,10 @@
+
+ # Install Using Samba book
+
+-if [ "x$BOOKDIR" != "x" ]; then
++# For Debian we do not install anything here, we just create a symlink
++# pointing to /usr/share/doc/samba-doc/htmldocs/using_samba/ in
++# debian/rules (peloy@debian.org)
++if /bin/false; then
+
+ # Create directories
+
+--- samba-2.2.2.cvs20020120.orig/source/web/diagnose.c
++++ samba-2.2.2.cvs20020120/source/web/diagnose.c
+@@ -54,6 +54,7 @@
+ static struct cli_state cli;
+ extern struct in_addr loopback_ip;
+
++ loopback_ip.s_addr = htonl((127 << 24) + 1);
+ if (!cli_initialise(&cli))
+ return False;
+
+--- samba-2.2.2.cvs20020120.orig/source/web/startstop.c
++++ samba-2.2.2.cvs20020120/source/web/startstop.c
+@@ -37,7 +37,7 @@
+ return;
+ }
+
+- slprintf(binfile, sizeof(pstring) - 1, "%s/smbd", SBINDIR);
++ slprintf(binfile, sizeof(pstring) - 1, "%s/smbd", "/usr/sbin");
+
+ become_daemon();
+
+@@ -58,7 +58,7 @@
+ return;
+ }
+
+- slprintf(binfile, sizeof(pstring) - 1, "%s/nmbd", SBINDIR);
++ slprintf(binfile, sizeof(pstring) - 1, "%s/nmbd", "/usr/sbin");
+
+ become_daemon();
+
+--- samba-2.2.2.cvs20020120.orig/source/web/swat.c
++++ samba-2.2.2.cvs20020120/source/web/swat.c
+@@ -49,6 +49,19 @@
+ #define ENABLE_USER_FLAG "enable_user_flag"
+ #define RHOST "remote_host"
+
++typedef struct html_conversion {
++ char src;
++ char *dest;
++} html_conversion;
++
++static const html_conversion entities[] = {
++ { '"', "&quot;" },
++ { '&', "&amp;" },
++ { '<', "&lt;" },
++ { '>', "&gt;" },
++ { '\0', NULL },
++};
++
+ /* we need these because we link to locking*.o */
+ void become_root(void) {}
+ void unbecome_root(void) {}
+@@ -77,6 +90,51 @@
+ return newstring;
+ }
+
++static char *htmlentities(char *str)
++{
++ int i,j, destlen = 0;
++ int length = strlen(str);
++ /* Feel free to use a pstring if appropriate -- I haven't
++ checked if it's guaranteed to be long enough, and suspect it
++ isn't. -SRL */
++ char *dststr = NULL;
++ char *p;
++
++ for (i = 0; i < length; i++) {
++ for (j = 0; entities[j].src; j++) {
++ if (str[i] == entities[j].src) {
++ destlen += strlen(entities[j].dest);
++ break;
++ }
++ }
++ if (!entities[j].src) {
++ destlen++;
++ }
++ }
++ if (length == destlen) {
++ return(strdup(str));
++ }
++ p = dststr = malloc(destlen + 1);
++ if (!dststr) {
++ return(NULL);
++ }
++ dststr[destlen] = '\0';
++ for (i = 0; i < length; i++) {
++ for (j = 0; entities[j].src; j++) {
++ if (str[i] == entities[j].src) {
++ strncpy(p, entities[j].dest,
++ strlen(entities[j].dest));
++ p += strlen(entities[j].dest);
++ break;
++ }
++ }
++ if (!entities[j].src) {
++ *p++ = str[i];
++ }
++ }
++ return(dststr);
++}
++
+ static char *stripspace(char *str)
+ {
+ static char newstring[1024];
+@@ -182,8 +240,12 @@
+
+ case P_STRING:
+ case P_USTRING:
+- printf("<input type=text size=40 name=\"parm_%s\" value=\"%s\">",
+- make_parm_name(parm->label), *(char **)ptr);
++ str = htmlentities(*(char **)ptr);
++ printf("<input type=\"text\" size=\"40\" name=\"parm_%s\" value=\"%s\">",
++ make_parm_name(parm->label), str);
++ if (str != NULL) {
++ free(str);
++ }
+ printf("<input type=button value=\"Set Default\" onClick=\"swatform.parm_%s.value=\'%s\'\">",
+ make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue)));
+ break;