Allocate at lest 8192 for temporary buffer as required for lzo.
+2012-04-25 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/fs/squash4.c (lzo_decompress): Set grub_errno on error.
+ Allocate at lest 8192 for temporary buffer as required for lzo.
+
2012-04-25 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/fat.c (grub_fat_mount): Don't add logical_sector_bits
lzo_uint usize = data->blksz;
grub_uint8_t *udata;
- udata = grub_malloc (data->blksz);
+ if (usize < 8192)
+ usize = 8192;
+
+ udata = grub_malloc (usize);
if (!udata)
return -1;
if (lzo1x_decompress_safe ((grub_uint8_t *) inbuf,
insize, udata, &usize, NULL) != LZO_E_OK)
{
+ grub_error (GRUB_ERR_BAD_FS, "incorrect compressed chunk");
grub_free (udata);
return -1;
}