Fix signing bug with secondary client trans requests. Turns out the last
authorJeremy Allison <jra@samba.org>
Sun, 30 Nov 2003 19:40:57 +0000 (19:40 +0000)
committerJeremy Allison <jra@samba.org>
Sun, 30 Nov 2003 19:40:57 +0000 (19:40 +0000)
packet is the one that matters for checking the signing replies. Need to
check the server code does this correctly too....
Bug #832 reported by Volker.
Jeremy.

source/libsmb/clitrans.c

index 92c1cc99eeb8c701e6a3de319e1d05fa588b7552..3eb7fcc2168d0984861ca30fdac5551d2cea1a88 100644 (file)
@@ -134,6 +134,16 @@ BOOL cli_send_trans(struct cli_state *cli, int trans,
                         * the primary. Important in signing. JRA. */
                        cli->mid = mid;
 
+                       /*
+                        * Turns out that we need to increment the
+                        * sequence number for each packet until the
+                        * last one in the signing sequence. That's
+                        * the one that matters to check signing replies. JRA.
+                        */
+
+                       cli_signing_trans_stop(cli);
+                       cli_signing_trans_start(cli);
+
                        show_msg(cli->outbuf);
                        if (!cli_send_smb(cli)) {
                                cli_signing_trans_stop(cli);
@@ -427,6 +437,16 @@ BOOL cli_send_nt_trans(struct cli_state *cli,
                         * the primary. Important in signing. JRA. */
                        cli->mid = mid;
 
+                       /*
+                        * Turns out that we need to increment the
+                        * sequence number for each packet until the
+                        * last one in the signing sequence. That's
+                        * the one that matters to check signing replies. JRA.
+                        */
+
+                       cli_signing_trans_stop(cli);
+                       cli_signing_trans_start(cli);
+
                        show_msg(cli->outbuf);
 
                        if (!cli_send_smb(cli)) {