summaryrefslogtreecommitdiffstats
path: root/source4
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2008-05-22 14:49:21 +1000
committerAndrew Tridgell <tridge@samba.org>2008-05-22 14:49:21 +1000
commitdec930448f957aca7e70e975221a2ac060819b2e (patch)
treea6084ea1214bc480a5be3632a0efc76451f4159e /source4
parent8f599b3781dac43c47b064d9bafc89e389b7c0db (diff)
downloadsamba-dec930448f957aca7e70e975221a2ac060819b2e.tar.gz
samba-dec930448f957aca7e70e975221a2ac060819b2e.tar.xz
samba-dec930448f957aca7e70e975221a2ac060819b2e.zip
fixed parsing of the SMB2 ALL_INFO qfileinfo level
(This used to be commit a7be5ba22e0cf2c61501f5a05e64673f31ba145c)
Diffstat (limited to 'source4')
-rw-r--r--source4/libcli/raw/interfaces.h3
-rw-r--r--source4/libcli/raw/rawfileinfo.c3
-rw-r--r--source4/smb_server/blob.c3
3 files changed, 6 insertions, 3 deletions
diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h
index 3370021d48e..bae0e67b02e 100644
--- a/source4/libcli/raw/interfaces.h
+++ b/source4/libcli/raw/interfaces.h
@@ -684,7 +684,8 @@ union smb_fileinfo {
uint32_t ea_size;
uint32_t access_mask;
uint64_t position;
- uint64_t mode;
+ uint32_t mode;
+ uint32_t alignment_requirement;
struct smb_wire_string fname;
} out;
} all_info2;
diff --git a/source4/libcli/raw/rawfileinfo.c b/source4/libcli/raw/rawfileinfo.c
index 71900be49cd..0ea5a93606d 100644
--- a/source4/libcli/raw/rawfileinfo.c
+++ b/source4/libcli/raw/rawfileinfo.c
@@ -243,7 +243,8 @@ NTSTATUS smb_raw_fileinfo_passthru_parse(const DATA_BLOB *blob, TALLOC_CTX *mem_
parms->all_info2.out.ea_size = IVAL(blob->data, 0x48);
parms->all_info2.out.access_mask = IVAL(blob->data, 0x4C);
parms->all_info2.out.position = BVAL(blob->data, 0x50);
- parms->all_info2.out.mode = BVAL(blob->data, 0x58);
+ parms->all_info2.out.mode = IVAL(blob->data, 0x58);
+ parms->all_info2.out.alignment_requirement = IVAL(blob->data, 0x5C);
smbcli_blob_pull_string(NULL, mem_ctx, blob,
&parms->all_info2.out.fname, 0x60, 0x64, STR_UNICODE);
return NT_STATUS_OK;
diff --git a/source4/smb_server/blob.c b/source4/smb_server/blob.c
index 8834c4483c1..65cdd2aea64 100644
--- a/source4/smb_server/blob.c
+++ b/source4/smb_server/blob.c
@@ -503,7 +503,8 @@ NTSTATUS smbsrv_push_passthru_fileinfo(TALLOC_CTX *mem_ctx,
SIVAL(blob->data, 0x48, st->all_info2.out.ea_size);
SIVAL(blob->data, 0x4C, st->all_info2.out.access_mask);
SBVAL(blob->data, 0x50, st->all_info2.out.position);
- SBVAL(blob->data, 0x58, st->all_info2.out.mode);
+ SIVAL(blob->data, 0x58, st->all_info2.out.mode);
+ SIVAL(blob->data, 0x5C, st->all_info2.out.alignment_requirement);
BLOB_CHECK(smbsrv_blob_append_string(mem_ctx, blob,
st->all_info2.out.fname.s,
0x60, default_str_flags,