diff options
-rw-r--r-- | source3/libsmb/async_smb.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 04c22a9d17..58bba2bfc7 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -31,6 +31,12 @@ NTSTATUS cli_pull_error(char *buf) return NT_STATUS(IVAL(buf, smb_rcls)); } + /* if the client uses dos errors, but there is no error, + we should return no error here, otherwise it looks + like an unknown bad NT_STATUS. jmcd */ + if (CVAL(buf, smb_rcls) == 0) + return NT_STATUS_OK; + return NT_STATUS_DOS(CVAL(buf, smb_rcls), SVAL(buf,smb_err)); } |