From 2ad1159990f5f1be37af12d36b35def37d69ab25 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sun, 30 Nov 2003 19:40:57 +0000 Subject: 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. (This used to be commit 6750dc33b46c422582176b704592d9b2f1fb04d7) --- source3/libsmb/clitrans.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'source3/libsmb/clitrans.c') diff --git a/source3/libsmb/clitrans.c b/source3/libsmb/clitrans.c index 92c1cc99ee..3eb7fcc216 100644 --- a/source3/libsmb/clitrans.c +++ b/source3/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)) { -- cgit