Fix OCSP_RESPID processing bug introduced by WPACKET changes
authorMatt Caswell <matt@openssl.org>
Tue, 13 Sep 2016 22:59:11 +0000 (23:59 +0100)
committerMatt Caswell <matt@openssl.org>
Wed, 14 Sep 2016 09:26:36 +0000 (10:26 +0100)
An OCSP_RESPID in a status request extension has 2 bytes for the length
not 1.

Reviewed-by: Rich Salz <rsalz@openssl.org>
ssl/t1_lib.c

index 696998fe5eab030382a435f4a17713b126e14c32..4f5ea42b5a14b69e2c9fdba888951c4979b608f3 100644 (file)
@@ -1209,7 +1209,7 @@ int ssl_add_clienthello_tlsext(SSL *s, WPACKET *pkt, int *al)
             idlen = i2d_OCSP_RESPID(id, NULL);
             if (idlen <= 0
                        /* Sub-packet for an individual id */
-                    || !WPACKET_sub_allocate_bytes_u8(pkt, idlen, &idbytes)
+                    || !WPACKET_sub_allocate_bytes_u16(pkt, idlen, &idbytes)
                     || i2d_OCSP_RESPID(id, &idbytes) != idlen) {
                 SSLerr(SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT, ERR_R_INTERNAL_ERROR);
                 return 0;