summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/libcli/raw/rawfsinfo.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source4/libcli/raw/rawfsinfo.c b/source4/libcli/raw/rawfsinfo.c
index 4c79ba066c..15599adebe 100644
--- a/source4/libcli/raw/rawfsinfo.c
+++ b/source4/libcli/raw/rawfsinfo.c
@@ -214,14 +214,16 @@ NTSTATUS smb_raw_fsinfo_passthru_parse(DATA_BLOB blob, TALLOC_CTX *mem_ctx,
fsinfo->full_size_information.out.bytes_per_sector = IVAL(blob.data, 28);
break;
- case RAW_QFS_OBJECTID_INFORMATION:
+ case RAW_QFS_OBJECTID_INFORMATION: {
+ DATA_BLOB b2 = data_blob_const(blob.data, MIN(16, blob.length));
QFS_CHECK_SIZE(64);
- status = GUID_from_ndr_blob(&blob, &fsinfo->objectid_information.out.guid);
+ status = GUID_from_ndr_blob(&b2, &fsinfo->objectid_information.out.guid);
NT_STATUS_NOT_OK_RETURN(status);
for (i=0;i<6;i++) {
fsinfo->objectid_information.out.unknown[i] = BVAL(blob.data, 16 + i*8);
}
break;
+ }
default:
status = NT_STATUS_INVALID_INFO_CLASS;