summaryrefslogtreecommitdiffstats
path: root/source/smbd/ipc.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-03-13 23:16:39 +0000
committerJeremy Allison <jra@samba.org>2001-03-13 23:16:39 +0000
commitf1839d469e1fc6054b407bd8c4d7c505d4212b45 (patch)
tree137f85a87be28ed9cab38ac93cbc24693ce0cd2f /source/smbd/ipc.c
parenta6dd6662267eeddf368ff0ffba76b45761bf4eeb (diff)
downloadsamba-f1839d469e1fc6054b407bd8c4d7c505d4212b45.tar.gz
samba-f1839d469e1fc6054b407bd8c4d7c505d4212b45.tar.xz
samba-f1839d469e1fc6054b407bd8c4d7c505d4212b45.zip
Fix from Jim McDonough of IBM for using Win9x user manager.
Jeremy.
Diffstat (limited to 'source/smbd/ipc.c')
-rw-r--r--source/smbd/ipc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/smbd/ipc.c b/source/smbd/ipc.c
index 3cc9aca99e2..1418d3444fa 100644
--- a/source/smbd/ipc.c
+++ b/source/smbd/ipc.c
@@ -36,6 +36,7 @@ extern fstring local_machine;
#define NERR_notsupported 50
extern int smb_read_error;
+extern uint32 global_client_caps;
/*******************************************************************
copies parameters and data, as needed, into the smb buffer
@@ -102,8 +103,14 @@ void send_trans_reply(char *outbuf,
if (buffer_too_large)
{
/* issue a buffer size warning. on a DCE/RPC pipe, expect an SMBreadX... */
- SIVAL(outbuf, smb_flg2, SVAL(outbuf, smb_flg2) | FLAGS2_32_BIT_ERROR_CODES);
- SIVAL(outbuf, smb_rcls, 0x80000000 | STATUS_BUFFER_OVERFLOW);
+ if (!(global_client_caps & (CAP_NT_SMBS | CAP_STATUS32 ))) {
+ /* Win9x version. */
+ SSVAL(outbuf, smb_err, ERRmoredata);
+ SCVAL(outbuf, smb_rcls, ERRDOS);
+ } else {
+ SIVAL(outbuf, smb_flg2, SVAL(outbuf, smb_flg2) | FLAGS2_32_BIT_ERROR_CODES);
+ SIVAL(outbuf, smb_rcls, 0x80000000 | STATUS_BUFFER_OVERFLOW);
+ }
}
copy_trans_params_and_data(outbuf, align,