diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libsmb/async_smb.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 09103321be..df205dd9d0 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -30,9 +30,14 @@ static NTSTATUS cli_pull_raw_error(const uint8_t *buf) { uint32_t flags2 = SVAL(buf, smb_flg2); + NTSTATUS status = NT_STATUS(IVAL(buf, smb_rcls)); + + if (NT_STATUS_IS_OK(status)) { + return NT_STATUS_OK; + } if (flags2 & FLAGS2_32_BIT_ERROR_CODES) { - return NT_STATUS(IVAL(buf, smb_rcls)); + return status; } return NT_STATUS_DOS(CVAL(buf, smb_rcls), SVAL(buf,smb_err)); |