summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/trans2.c11
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,