+2011-01-04 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/lib/reed_solomon.c (grub_reed_solomon_add_redundancy):
+ Prevent overflow.
+ (grub_reed_solomon_recover): Likewise.
+
2011-01-04 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/lib/reed_solomon.c (main) [TEST]: Reactivate normal test.
tt = cs + crs;
if (tt > MAX_BLOCK_SIZE)
{
- cs = (cs * MAX_BLOCK_SIZE) / tt;
- crs = (crs * MAX_BLOCK_SIZE) / tt;
+ cs = ((cs * (MAX_BLOCK_SIZE / 512)) / tt) * 512;
+ crs = ((crs * (MAX_BLOCK_SIZE / 512)) / tt) * 512;
}
encode_block (ptr, cs, rptr, crs);
ptr += cs;
tt = cs + crs;
if (tt > MAX_BLOCK_SIZE)
{
- cs = (cs * MAX_BLOCK_SIZE) / tt;
- crs = (crs * MAX_BLOCK_SIZE) / tt;
+ cs = ((cs * (MAX_BLOCK_SIZE / 512)) / tt) * 512;
+ crs = ((crs * (MAX_BLOCK_SIZE / 512)) / tt) * 512;
}
decode_block (ptr, cs, rptr, crs);
ptr += cs;