[patch] for charconv in samba.HEAD
Ihar Viarheichyk
i.viarheichyk at sam-solutions.net
Wed Dec 19 08:22:05 GMT 2001
The patch I posted before is not good. Here is another patch :)
I hope this approach is more correct.
--
Igor Vergeichik
ICQ 47298730
-------------- next part --------------
diff -ruNk.orig samba.HEAD/source/lib/charcnv.c.orig samba.HEAD/source/lib/charcnv.c
--- samba.HEAD/source/lib/charcnv.c.orig Tue Dec 18 16:47:33 2001
+++ samba.HEAD/source/lib/charcnv.c Wed Dec 19 18:05:58 2001
@@ -134,7 +134,7 @@
break;
- case EILSEQ: reason="Illegal myltibyte sequence"; break;
+ case EILSEQ: reason="Illegal multibyte sequence"; break;
}
DEBUG(0,("Conversion error: %s(%s)\n",reason,inbuf));
/* smb_panic(reason); */
diff -ruNk.orig samba.HEAD/source/libsmb/cliconnect.c.orig samba.HEAD/source/libsmb/cliconnect.c
--- samba.HEAD/source/libsmb/cliconnect.c.orig Wed Dec 19 16:08:20 2001
+++ samba.HEAD/source/libsmb/cliconnect.c Wed Dec 19 18:18:03 2001
@@ -366,15 +366,17 @@
cli->vuid = SVAL(cli->inbuf,smb_uid);
p = smb_buf(cli->inbuf);
-
blob2 = data_blob(p, SVAL(cli->inbuf, smb_vwv3));
p += blob2.length;
-
p += clistr_pull(cli, cli->server_os, p, sizeof(fstring), -1, STR_TERMINATE);
- p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), -1, STR_TERMINATE);
- p += clistr_pull(cli, cli->server_domain, p, sizeof(fstring), -1, STR_TERMINATE);
-
+ /* workaround for misaligned unicode string in windows packet */
+ p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), strlen_w(p)*2+2, 0);
+ /* In broken package there is no 'Domain' field */
+ if(!SVAL(p,1)) {
+ p += 2;
+ p += clistr_pull(cli, cli->server_domain, p, sizeof(fstring), -1, STR_TERMINATE);
+ }
return blob2;
}
More information about the samba-technical
mailing list