+2013-11-12 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/io/lzopio.c: Remove variable length arrays.
+
2013-11-12 Vladimir Serbinenko <phcoder@gmail.com>
* include/grub/crypto.h: Add maximums on hash size and cipher block
if (lzopio->ccheck_fun)
{
- GRUB_PROPERLY_ALIGNED_ARRAY (context, lzopio->ccheck_fun->contextsize);
+ grub_uint8_t computed_hash[GRUB_CRYPTO_MAX_MDLEN];
- lzopio->ccheck_fun->init (context);
- lzopio->ccheck_fun->write (context, lzopio->block.cdata,
- lzopio->block.csize);
- lzopio->ccheck_fun->final (context);
+ if (lzopio->ccheck_fun->mdlen > GRUB_CRYPTO_MAX_MDLEN)
+ return -1;
+
+ grub_crypto_hash (lzopio->ccheck_fun, computed_hash,
+ lzopio->block.cdata,
+ lzopio->block.csize);
if (grub_memcmp
- (lzopio->ccheck_fun->read (context), &lzopio->block.ccheck,
+ (computed_hash, &lzopio->block.ccheck,
sizeof (lzopio->block.ccheck)) != 0)
return -1;
}
if (lzopio->ucheck_fun)
{
- GRUB_PROPERLY_ALIGNED_ARRAY (context, lzopio->ucheck_fun->contextsize);
+ grub_uint8_t computed_hash[GRUB_CRYPTO_MAX_MDLEN];
+
+ if (lzopio->ucheck_fun->mdlen > GRUB_CRYPTO_MAX_MDLEN)
+ return -1;
- lzopio->ucheck_fun->init (context);
- lzopio->ucheck_fun->write (context, lzopio->block.udata,
- lzopio->block.usize);
- lzopio->ucheck_fun->final (context);
+ grub_crypto_hash (lzopio->ucheck_fun, computed_hash,
+ lzopio->block.udata,
+ lzopio->block.usize);
if (grub_memcmp
- (lzopio->ucheck_fun->read (context), &lzopio->block.ucheck,
+ (computed_hash, &lzopio->block.ucheck,
sizeof (lzopio->block.ucheck)) != 0)
return -1;
}