ssl/[d1|s3]_pkt.c: harmomize orig_len handling.
authorAndy Polyakov <appro@openssl.org>
Thu, 7 Feb 2013 21:47:05 +0000 (22:47 +0100)
committerAndy Polyakov <appro@openssl.org>
Fri, 8 Feb 2013 10:14:12 +0000 (11:14 +0100)
(cherry picked from commit 8545f73b8919770a5d012fe7a82d6785b69baa27)

ssl/d1_pkt.c
ssl/s3_pkt.c

index 37257ac2981e4ebc6e5f00aa6dcd2f8d6ec7adfc..9b013e491c1691dbc339a215acc1e12a9d70e932 100644 (file)
@@ -402,7 +402,6 @@ dtls1_process_record(SSL *s)
 
        /* decrypt in place in 'rr->input' */
        rr->data=rr->input;
-       orig_len=rr->length;
 
        enc_err = s->method->ssl3_enc->enc(s,0);
        /* enc_err is:
@@ -434,6 +433,9 @@ printf("\n");
                mac_size=EVP_MD_CTX_size(s->read_hash);
                OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
 
+               /* kludge: *_cbc_remove_padding passes padding length in rr->type */
+               orig_len = rr->length+((unsigned int)rr->type>>8);
+
                /* orig_len is the length of the record before any padding was
                 * removed. This is public information, as is the MAC in use,
                 * therefore we can safely process the record in a different
index 39818ecdefe5bd099475be3fb49eddaccb3a0230..a41279eaf48a3a4e7cb38ff06f29891cdfb4e71d 100644 (file)
@@ -397,7 +397,6 @@ fprintf(stderr, "Record type=%d, Length=%d\n", rr->type, rr->length);
 
        /* decrypt in place in 'rr->input' */
        rr->data=rr->input;
-       orig_len=rr->length;
 
        enc_err = s->method->ssl3_enc->enc(s,0);
        /* enc_err is:
@@ -428,6 +427,9 @@ printf("\n");
                mac_size=EVP_MD_CTX_size(s->read_hash);
                OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
 
+               /* kludge: *_cbc_remove_padding passes padding length in rr->type */
+               orig_len = rr->length+((unsigned int)rr->type>>8);
+
                /* orig_len is the length of the record before any padding was
                 * removed. This is public information, as is the MAC in use,
                 * therefore we can safely process the record in a different