Re: [PATCH] cifs: store the real expected sequence number in the mid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Merged into cifs-2.6.git for-next (along with the other patch) -
destined for 3.10 unles anyone objects

On Wed, Apr 3, 2013 at 1:07 PM, Jeff Layton <jlayton@xxxxxxxxxx> wrote:
> Currently, the signing routines take a pointer to a place to store the
> expected sequence number for the mid response. It then stores a value
> that's one below what that sequence number should be, and then adds one
> to it when verifying the signature on the response.
>
> Increment the sequence number before storing the value in the mid, and
> eliminate the "+1" when checking the signature.
>
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  fs/cifs/cifsencrypt.c | 4 ++--
>  fs/cifs/cifssmb.c     | 2 +-
>  fs/cifs/transport.c   | 2 +-
>  3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
> index 2cbbec6..71436d1 100644
> --- a/fs/cifs/cifsencrypt.c
> +++ b/fs/cifs/cifsencrypt.c
> @@ -135,8 +135,8 @@ int cifs_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server,
>                                 cpu_to_le32(server->sequence_number);
>         cifs_pdu->Signature.Sequence.Reserved = 0;
>
> -       *pexpected_response_sequence_number = server->sequence_number++;
> -       server->sequence_number++;
> +       *pexpected_response_sequence_number = ++server->sequence_number;
> +       ++server->sequence_number;
>
>         rc = cifs_calc_signature(rqst, server, smb_signature);
>         if (rc)
> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
> index 076d7ed..4060c45 100644
> --- a/fs/cifs/cifssmb.c
> +++ b/fs/cifs/cifssmb.c
> @@ -1545,7 +1545,7 @@ cifs_readv_callback(struct mid_q_entry *mid)
>                         int rc = 0;
>
>                         rc = cifs_verify_signature(&rqst, server,
> -                                                 mid->sequence_number + 1);
> +                                                 mid->sequence_number);
>                         if (rc)
>                                 cifs_dbg(VFS, "SMB signature verification returned error = %d\n",
>                                          rc);
> diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
> index 293d2c8..bfbf470 100644
> --- a/fs/cifs/transport.c
> +++ b/fs/cifs/transport.c
> @@ -622,7 +622,7 @@ cifs_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server,
>                 iov.iov_len = len;
>                 /* FIXME: add code to kill session */
>                 rc = cifs_verify_signature(&rqst, server,
> -                                          mid->sequence_number + 1);
> +                                          mid->sequence_number);
>                 if (rc)
>                         cifs_dbg(VFS, "SMB signature verification returned error = %d\n",
>                                  rc);
> --
> 1.7.11.7
>



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux