summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-11-30 19:40:57 +0000
committerJeremy Allison <jra@samba.org>2003-11-30 19:40:57 +0000
commit6750dc33b46c422582176b704592d9b2f1fb04d7 (patch)
treedb83a289d492b61eb9b212913ffda23baaa5afb4
parent39e4ee0c5be9f8d5a26b03ae17865b8e576b0b62 (diff)
downloadsamba-6750dc33b46c422582176b704592d9b2f1fb04d7.tar.gz
samba-6750dc33b46c422582176b704592d9b2f1fb04d7.tar.xz
samba-6750dc33b46c422582176b704592d9b2f1fb04d7.zip
Fix signing bug with secondary client trans requests. Turns out the last
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.
-rw-r--r--source/libsmb/clitrans.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/libsmb/clitrans.c b/source/libsmb/clitrans.c
index 92c1cc99eeb..3eb7fcc2168 100644
--- a/source/libsmb/clitrans.c
+++ b/source/libsmb/clitrans.c
@@ -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)) {