diff options
Diffstat (limited to 'source3/libsmb/clitrans.c')
-rw-r--r-- | source3/libsmb/clitrans.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source3/libsmb/clitrans.c b/source3/libsmb/clitrans.c index 50ed68ee165..5cd6ae30ce0 100644 --- a/source3/libsmb/clitrans.c +++ b/source3/libsmb/clitrans.c @@ -170,8 +170,13 @@ BOOL cli_receive_trans(struct cli_state *cli,int trans, if (cli_error(cli, &eclass, &ecode, NULL)) { - if(cli->nt_pipe_fnum == 0 || !(eclass == ERRDOS && ecode == ERRmoredata)) + if(cli->nt_pipe_fnum == 0) return(False); + + if(!(eclass == ERRDOS && ecode == ERRmoredata)) { + if (eclass != 0 && (ecode != (0x80000000 | STATUS_BUFFER_OVERFLOW))) + return(False); + } } /* parse out the lengths */ |