summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/libcli/raw/rawfsinfo.c8
-rw-r--r--source4/libcli/raw/rawrequest.c12
-rw-r--r--source4/libcli/smb2/negprot.c7
3 files changed, 9 insertions, 18 deletions
diff --git a/source4/libcli/raw/rawfsinfo.c b/source4/libcli/raw/rawfsinfo.c
index 43a0919e38..4c79ba066c 100644
--- a/source4/libcli/raw/rawfsinfo.c
+++ b/source4/libcli/raw/rawfsinfo.c
@@ -159,7 +159,6 @@ NTSTATUS smb_raw_fsinfo_passthru_parse(DATA_BLOB blob, TALLOC_CTX *mem_ctx,
union smb_fsinfo *fsinfo)
{
NTSTATUS status = NT_STATUS_OK;
- enum ndr_err_code ndr_err;
int i;
/* parse the results */
@@ -217,11 +216,8 @@ NTSTATUS smb_raw_fsinfo_passthru_parse(DATA_BLOB blob, TALLOC_CTX *mem_ctx,
case RAW_QFS_OBJECTID_INFORMATION:
QFS_CHECK_SIZE(64);
- ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, NULL, &fsinfo->objectid_information.out.guid,
- (ndr_pull_flags_fn_t)ndr_pull_GUID);
- if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- status = ndr_map_error2ntstatus(ndr_err);
- }
+ status = GUID_from_ndr_blob(&blob, &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);
}
diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c
index 0f04190a8b..723e3d909c 100644
--- a/source4/libcli/raw/rawrequest.c
+++ b/source4/libcli/raw/rawrequest.c
@@ -991,21 +991,17 @@ size_t smbcli_blob_append_string(struct smbcli_session *session,
pull a GUID structure from the wire. The buffer must be at least 16
bytes long
*/
-enum ndr_err_code smbcli_pull_guid(void *base, uint16_t offset,
- struct GUID *guid)
+NTSTATUS smbcli_pull_guid(void *base, uint16_t offset,
+ struct GUID *guid)
{
DATA_BLOB blob;
- TALLOC_CTX *tmp_ctx = talloc_new(NULL);
- enum ndr_err_code ndr_err;
ZERO_STRUCTP(guid);
blob.data = offset + (uint8_t *)base;
blob.length = 16;
- ndr_err = ndr_pull_struct_blob(&blob, tmp_ctx, NULL, guid,
- (ndr_pull_flags_fn_t)ndr_pull_GUID);
- talloc_free(tmp_ctx);
- return ndr_err;
+
+ return GUID_from_ndr_blob(&blob, guid);
}
/*
diff --git a/source4/libcli/smb2/negprot.c b/source4/libcli/smb2/negprot.c
index c1f0cf0b24..16dcd1571f 100644
--- a/source4/libcli/smb2/negprot.c
+++ b/source4/libcli/smb2/negprot.c
@@ -68,7 +68,6 @@ NTSTATUS smb2_negprot_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
struct smb2_negprot *io)
{
NTSTATUS status;
- enum ndr_err_code ndr_err;
if (!smb2_request_receive(req) ||
smb2_request_is_error(req)) {
@@ -80,10 +79,10 @@ NTSTATUS smb2_negprot_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
io->out.security_mode = SVAL(req->in.body, 0x02);
io->out.dialect_revision = SVAL(req->in.body, 0x04);
io->out.reserved = SVAL(req->in.body, 0x06);
- ndr_err = smbcli_pull_guid(req->in.body, 0x08, &io->in.client_guid);
- if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ status = smbcli_pull_guid(req->in.body, 0x08, &io->in.client_guid);
+ if (!NT_STATUS_IS_OK(status)) {
smb2_request_destroy(req);
- return NT_STATUS_INTERNAL_ERROR;
+ return status;
}
io->out.capabilities = IVAL(req->in.body, 0x18);
io->out.max_transact_size = IVAL(req->in.body, 0x1C);