Browse Source

catch case where blen%8 != 0

Steffen Jaeckel 8 years ago
parent
commit
40e4a66693
1 changed files with 1 additions and 1 deletions
  1. 1 1
      src/pk/asn1/der/bit/der_decode_raw_bit_string.c

+ 1 - 1
src/pk/asn1/der/bit/der_decode_raw_bit_string.c

@@ -78,7 +78,7 @@ int der_decode_raw_bit_string(const unsigned char *in,  unsigned long inlen,
    blen = ((dlen - 1) << 3) - (in[x++] & 7);
    blen = ((dlen - 1) << 3) - (in[x++] & 7);
 
 
    /* too many bits? */
    /* too many bits? */
-   if (blen/8 > *outlen) {
+   if ((blen + 7)/8 > *outlen) {
       *outlen = blen;
       *outlen = blen;
       return CRYPT_BUFFER_OVERFLOW;
       return CRYPT_BUFFER_OVERFLOW;
    }
    }