smb_server/smb: transs and transs2 calls have different word counts
authorStefan Metzmacher <metze@samba.org>
Mon, 7 Jul 2008 11:00:24 +0000 (13:00 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 7 Jul 2008 11:43:12 +0000 (13:43 +0200)
Also add a note about NT_STATUS_DOS(ERRSRV, ERRerror).

metze

source/smb_server/smb/trans2.c

index fc17491c42ae912305722374b7fea36dbea295ba..5d206f9ea8a7e8a0ea398d094f54f4a1519d15fa 100644 (file)
@@ -1291,9 +1291,20 @@ static void reply_transs_generic(struct smbsrv_request *req, uint8_t command)
        uint16_t param_disp, data_disp;
        uint16_t param_total, data_total;
        DATA_BLOB params, data;
+       uint8_t wct;
+
+       if (command == SMBtrans2) {
+               wct = 9;
+       } else {
+               wct = 8;
+       }
 
        /* parse request */
-       if (req->in.wct < 8) {
+       if (req->in.wct != wct) {
+               /*
+                * TODO: add some error code tests
+                *       w2k3 returns NT_STATUS_DOS(ERRSRV, ERRerror) here
+                */
                smbsrv_send_error(req, NT_STATUS_INVALID_PARAMETER);
                return;
        }