summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim McDonough <jmcd@samba.org>2003-04-24 18:59:13 +0000
committerJim McDonough <jmcd@samba.org>2003-04-24 18:59:13 +0000
commit8bfad47114aae1ff1724dc27309e0de18dc333e6 (patch)
treecd7d758998367509800647bcf1aa6e2f3affedd1
parent467f5457466e3488e60bcab3505bc920822672e6 (diff)
downloadsamba-8bfad47114aae1ff1724dc27309e0de18dc333e6.tar.gz
samba-8bfad47114aae1ff1724dc27309e0de18dc333e6.tar.bz2
samba-8bfad47114aae1ff1724dc27309e0de18dc333e6.zip
Fix length in findfirst2 responses, fix os/2 clients
(This used to be commit ce56ccf932e5ae89b7d46da31ec9b17551206491)
-rw-r--r--source3/smbd/trans2.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 7b8b7e3a4f..0bfb145c10 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -626,7 +626,10 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn,
nameptr = p;
p += align_string(outbuf, p, 0);
len = srvstr_push(outbuf, p, fname, -1, STR_TERMINATE);
- SCVAL(nameptr, -1, len);
+ if (SVAL(outbuf, smb_flg2) & FLAGS2_UNICODE_STRINGS)
+ SCVAL(nameptr, -1, len-2);
+ else
+ SCVAL(nameptr, -1, len-1);
p += len;
break;
@@ -644,10 +647,13 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn,
SIVAL(p,l2_cbList,0); /* No extended attributes */
p += l2_achName;
nameptr = p;
- len = srvstr_push(outbuf, p, fname, -1, STR_NOALIGN);
- SCVAL(p, -1, len);
+ p += align_string(outbuf, p, 0);
+ len = srvstr_push(outbuf, p, fname, -1, STR_TERMINATE);
+ if (SVAL(outbuf, smb_flg2) & FLAGS2_UNICODE_STRINGS)
+ SCVAL(nameptr, -1, len-2);
+ else
+ SCVAL(nameptr, -1, len-1);
p += len;
- *p++ = 0; /* craig from unisys pointed out we need this */
break;
case SMB_FIND_FILE_BOTH_DIRECTORY_INFO: