summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim McDonough <jmcd@samba.org>2008-08-13 18:03:51 -0400
committerMichael Adam <obnox@samba.org>2008-08-14 11:22:46 +0200
commitb48ba00dc67cc7235a135615b0ee25245ac8474b (patch)
treea4a2a26239e67c94cec184f5c15466445a4c88c7
parente90dc23ff5d9853501df21331ce57ccb29601fa8 (diff)
downloadsamba-b48ba00dc67cc7235a135615b0ee25245ac8474b.tar.gz
samba-b48ba00dc67cc7235a135615b0ee25245ac8474b.tar.bz2
samba-b48ba00dc67cc7235a135615b0ee25245ac8474b.zip
Prevent NT_STATUS 0xF1000000 errors from appearing when
dos errors are used and there is no error. It should be mapped directly to NT_STATUS_OK. smbclient to older servers didn't work. (This used to be commit 78f009b7ef1f1d63b21df9ba6da7fcca01c12109)
-rw-r--r--source3/libsmb/async_smb.c6
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));
}