diff options
-rw-r--r-- | source3/smbd/error.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/source3/smbd/error.c b/source3/smbd/error.c index 5ba751647f..2fb4241968 100644 --- a/source3/smbd/error.c +++ b/source3/smbd/error.c @@ -77,11 +77,10 @@ void error_packet_set(char *outbuf, uint8 eclass, uint32 ecode, NTSTATUS ntstatu smb_fn_name(CVAL(outbuf,smb_com)), nt_errstr(ntstatus))); } else { - /* We're returning a DOS error only. */ - if (NT_STATUS_IS_DOS(ntstatus)) { - eclass = NT_STATUS_DOS_CLASS(ntstatus); - ecode = NT_STATUS_DOS_CODE(ntstatus); - } else if (eclass == 0 && NT_STATUS_V(ntstatus)) { + /* We're returning a DOS error only, + * nt_status_to_dos() pulls DOS error codes out of the + * NTSTATUS */ + if (NT_STATUS_IS_DOS(ntstatus) || (eclass == 0 && NT_STATUS_V(ntstatus))) { ntstatus_to_dos(ntstatus, &eclass, &ecode); } |