From: Vladimir Serbinenko Date: Tue, 12 Nov 2013 01:49:17 +0000 (+0100) Subject: * grub-core/lib/crypto.c (grub_crypto_cbc_decrypt): Remove variable X-Git-Tag: grub-2.02-beta1~382 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b85f1228a6fd5b0a0545029cdb0a8d2bc1bb063;p=thirdparty%2Fgrub.git * grub-core/lib/crypto.c (grub_crypto_cbc_decrypt): Remove variable length arrays. --- diff --git a/ChangeLog b/ChangeLog index 661d4d2e8..269a841e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-11-12 Vladimir Serbinenko + + * grub-core/lib/crypto.c (grub_crypto_cbc_decrypt): Remove variable + length arrays. + 2013-11-12 Vladimir Serbinenko * grub-core/disk/AFSplitter.c: Remove variable length arrays. diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c index 4d360aa67..e31afb745 100644 --- a/grub-core/lib/crypto.c +++ b/grub-core/lib/crypto.c @@ -261,11 +261,13 @@ grub_crypto_cbc_decrypt (grub_crypto_cipher_handle_t cipher, { const grub_uint8_t *inptr; grub_uint8_t *outptr, *end; - grub_uint8_t ivt[cipher->cipher->blocksize]; + grub_uint8_t ivt[GRUB_CRYPTO_MAX_CIPHER_BLOCKSIZE]; if (!cipher->cipher->decrypt) return GPG_ERR_NOT_SUPPORTED; if (size % cipher->cipher->blocksize != 0) return GPG_ERR_INV_ARG; + if (cipher->cipher->blocksize > GRUB_CRYPTO_MAX_CIPHER_BLOCKSIZE) + return GPG_ERR_INV_ARG; end = (grub_uint8_t *) in + size; for (inptr = in, outptr = out; inptr < end; inptr += cipher->cipher->blocksize, outptr += cipher->cipher->blocksize)