Ignore:
Timestamp:
Apr 25, 2007, 9:44:55 AM (14 years ago)
Author:
Paul Smedley
Message:

Code updated to Samba 3.0.25rc2 level

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/samba/source/libsmb/clientgen.c

    r1 r30  
    118118
    119119        if (!cli_check_sign_mac(cli)) {
     120                /*
     121                 * If we get a signature failure in sessionsetup, then
     122                 * the server sometimes just reflects the sent signature
     123                 * back to us. Detect this and allow the upper layer to
     124                 * retrieve the correct Windows error message.
     125                 */
     126                if (CVAL(cli->outbuf,smb_com) == SMBsesssetupX &&
     127                        (smb_len(cli->inbuf) > (smb_ss_field + 8 - 4)) &&
     128                        (SVAL(cli->inbuf,smb_flg2) & FLAGS2_SMB_SECURITY_SIGNATURES) &&
     129                        memcmp(&cli->outbuf[smb_ss_field],&cli->inbuf[smb_ss_field],8) == 0 &&
     130                        cli_is_error(cli)) {
     131
     132                        /*
     133                         * Reflected signature on login error.
     134                         * Set bad sig but don't close fd.
     135                         */
     136                        cli->smb_rw_error = READ_BAD_SIG;
     137                        return True;
     138                }
     139
    120140                DEBUG(0, ("SMB Signature verification failed on incoming packet!\n"));
    121141                cli->smb_rw_error = READ_BAD_SIG;
Note: See TracChangeset for help on using the changeset viewer.