the final byte of a pkcs7 padded plaintext can never be 0
authorNils Larsch <nils@openssl.org>
Wed, 20 Jul 2005 22:03:36 +0000 (22:03 +0000)
committerNils Larsch <nils@openssl.org>
Wed, 20 Jul 2005 22:03:36 +0000 (22:03 +0000)
Submitted by: K S Sreeram <sreeram@tachyontech.net>

crypto/evp/evp_enc.c

index e8456322395e55694d8a60201b87baa1cc01e0dd..22cb6131be2e409027ed2006dabac213751fbaf0 100644 (file)
@@ -449,7 +449,7 @@ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
                        }
                OPENSSL_assert(b <= sizeof ctx->final);
                n=ctx->final[b-1];
-               if (n > (int)b)
+               if (n == 0 || n > (int)b)
                        {
                        EVPerr(EVP_F_EVP_DECRYPTFINAL_EX,EVP_R_BAD_DECRYPT);
                        return(0);