diff options
Diffstat (limited to 'source4/libcli/wrepl/winsrepl.c')
-rw-r--r-- | source4/libcli/wrepl/winsrepl.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source4/libcli/wrepl/winsrepl.c b/source4/libcli/wrepl/winsrepl.c index 29cc1f37fd..1f7ca796b6 100644 --- a/source4/libcli/wrepl/winsrepl.c +++ b/source4/libcli/wrepl/winsrepl.c @@ -85,7 +85,7 @@ static NTSTATUS wrepl_finish_recv(void *private, DATA_BLOB packet_blob_in) struct wrepl_socket *wrepl_socket = talloc_get_type(private, struct wrepl_socket); struct wrepl_request *req = wrepl_socket->recv_queue; DATA_BLOB blob; - NTSTATUS status; + enum ndr_err_code ndr_err; if (!req) { DEBUG(1,("Received unexpected WINS packet of length %u!\n", @@ -100,10 +100,11 @@ static NTSTATUS wrepl_finish_recv(void *private, DATA_BLOB packet_blob_in) blob.length = packet_blob_in.length - 4; /* we have a full request - parse it */ - status = ndr_pull_struct_blob(&blob, - req->packet, req->packet, - (ndr_pull_flags_fn_t)ndr_pull_wrepl_packet); - if (!NT_STATUS_IS_OK(status)) { + ndr_err = ndr_pull_struct_blob(&blob, + req->packet, req->packet, + (ndr_pull_flags_fn_t)ndr_pull_wrepl_packet); + if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { + NTSTATUS status = ndr_map_error2ntstatus(ndr_err); wrepl_request_finished(req, status); return NT_STATUS_OK; } @@ -470,6 +471,7 @@ struct wrepl_request *wrepl_request_send(struct wrepl_socket *wrepl_socket, struct wrepl_wrap wrap; DATA_BLOB blob; NTSTATUS status; + enum ndr_err_code ndr_err; req = talloc_zero(wrepl_socket, struct wrepl_request); if (!req) return NULL; @@ -485,9 +487,10 @@ struct wrepl_request *wrepl_request_send(struct wrepl_socket *wrepl_socket, } wrap.packet = *packet; - status = ndr_push_struct_blob(&blob, req, &wrap, - (ndr_push_flags_fn_t)ndr_push_wrepl_wrap); - if (!NT_STATUS_IS_OK(status)) { + ndr_err = ndr_push_struct_blob(&blob, req, &wrap, + (ndr_push_flags_fn_t)ndr_push_wrepl_wrap); + if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { + status = ndr_map_error2ntstatus(ndr_err); return wrepl_request_finished(req, status); } |