diff options
author | Jeremy Allison <jra@samba.org> | 2009-11-03 11:19:24 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-11-03 11:19:24 -0800 |
commit | 6a61befe3798ecf0996887164f7437c3f25c33f9 (patch) | |
tree | 86a2aea727ce1a9d0e94d6c113a14eb93b9d4d55 | |
parent | 97a32035bec03b76b67cb7088a7be1b7b3b9ac48 (diff) | |
download | samba-6a61befe3798ecf0996887164f7437c3f25c33f9.tar.gz samba-6a61befe3798ecf0996887164f7437c3f25c33f9.tar.bz2 samba-6a61befe3798ecf0996887164f7437c3f25c33f9.zip |
Fix more of the RAW-SEARCH test. Older info levels are
not 4 byte aligned (levels 1 - 3).
Jeremy.
-rw-r--r-- | source3/smbd/trans2.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index bc7a38719d..178c02a31c 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -1525,7 +1525,9 @@ static bool smbd_marshall_dir_entry(TALLOC_CTX *ctx, pad -= off; off += pad; /* initialize padding to 0 */ - memset(pdata, 0, pad); + if (pad) { + memset(pdata, 0, pad); + } space_remaining -= pad; pdata += pad; @@ -2159,13 +2161,18 @@ static bool get_lanman2_dir_entry(TALLOC_CTX *ctx, struct ea_list *name_list) { bool resume_key = false; - const uint8_t align = 4; + uint8_t align = 4; const bool do_pad = true; if (requires_resume_key) { resume_key = true; } + if (info_level >= 1 && info_level <= 3) { + /* No alignment on earlier info levels. */ + align = 1; + } + return smbd_dirptr_lanman2_entry(ctx, conn, dirptr, flags2, path_mask, dirtype, info_level, resume_key, dont_descend, ask_sharemode, |