summaryrefslogtreecommitdiff
path: root/Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c
diff options
context:
space:
mode:
authorMatthew Garrett <mjg@redhat.com>2012-07-02 12:33:42 -0400
committerMatthew Garrett <mjg@redhat.com>2012-07-02 12:33:42 -0400
commite21cbf4d9bafebb2560d1acac1e47e879c7f7493 (patch)
tree308e31c8b7338e11843ac324ce20b89d765c3f45 /Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c
parent5b1bf5583c3b6b523446b2b938f5f8355f488052 (diff)
downloadefi-boot-shim-e21cbf4d9bafebb2560d1acac1e47e879c7f7493.tar.gz
efi-boot-shim-e21cbf4d9bafebb2560d1acac1e47e879c7f7493.zip
Update OpenSSL
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c')
-rwxr-xr-xCryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c b/Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c
index 6abb30b2..92aba08c 100755
--- a/Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c
+++ b/Cryptlib/OpenSSL/crypto/ocsp/ocsp_ht.c
@@ -371,11 +371,12 @@ int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx)
case OHS_ASN1_HEADER:
- /* Now reading ASN1 header: can read at least 6 bytes which
- * is more than enough for any valid ASN1 SEQUENCE header
+ /* Now reading ASN1 header: can read at least 2 bytes which
+ * is enough for ASN1 SEQUENCE header and either length field
+ * or at least the length of the length field.
*/
n = BIO_get_mem_data(rctx->mem, &p);
- if (n < 6)
+ if (n < 2)
goto next_io;
/* Check it is an ASN1 SEQUENCE */
@@ -388,6 +389,11 @@ int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx)
/* Check out length field */
if (*p & 0x80)
{
+ /* If MSB set on initial length octet we can now
+ * always read 6 octets: make sure we have them.
+ */
+ if (n < 6)
+ goto next_io;
n = *p & 0x7F;
/* Not NDEF or excessive length */
if (!n || (n > 4))