diff options
Diffstat (limited to 'source3/smbd')
-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, |