summaryrefslogtreecommitdiff
path: root/source4/smb_server/blob.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smb_server/blob.c')
-rw-r--r--source4/smb_server/blob.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/source4/smb_server/blob.c b/source4/smb_server/blob.c
index 5cbd74a028..3683991526 100644
--- a/source4/smb_server/blob.c
+++ b/source4/smb_server/blob.c
@@ -272,12 +272,18 @@ NTSTATUS smbsrv_push_passthru_fsinfo(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
- case RAW_QFS_OBJECTID_INFORMATION:
+ case RAW_QFS_OBJECTID_INFORMATION: {
+ enum ndr_err_code ndr_err;
+
BLOB_CHECK(smbsrv_blob_grow_data(mem_ctx, blob, 64));
- BLOB_CHECK(ndr_push_struct_blob(&guid_blob, mem_ctx,
- &fsinfo->objectid_information.out.guid,
- (ndr_push_flags_fn_t)ndr_push_GUID));
+ ndr_err = ndr_push_struct_blob(&guid_blob, mem_ctx,
+ &fsinfo->objectid_information.out.guid,
+ (ndr_push_flags_fn_t)ndr_push_GUID);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ BLOB_CHECK(ndr_map_error2ntstatus(ndr_err));
+ }
+
memcpy(blob->data, guid_blob.data, guid_blob.length);
for (i=0;i<6;i++) {
@@ -285,7 +291,7 @@ NTSTATUS smbsrv_push_passthru_fsinfo(TALLOC_CTX *mem_ctx,
}
return NT_STATUS_OK;
-
+ }
default:
return NT_STATUS_INVALID_LEVEL;
}