+2013-10-25 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/disk/raid6_recover.c: Use unsigned arithmetics when
+ appropriate.
+
2013-10-25 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/video/bitmap_scale.c: Use unsigned arithmetics when
/* x**y. */
static grub_uint8_t powx[255 * 2];
/* Such an s that x**s = y */
-static int powx_inv[256];
+static unsigned powx_inv[256];
static const grub_uint8_t poly = 0x1d;
static void
-grub_raid_block_mulx (int mul, char *buf, int size)
+grub_raid_block_mulx (unsigned mul, char *buf, int size)
{
int i;
grub_uint8_t *p;
static void
grub_raid6_init_table (void)
{
- int i;
+ unsigned i;
grub_uint8_t cur = 1;
for (i = 0; i < 255; i++)
else
{
/* Two bad devices */
- int c;
+ unsigned c;
if (grub_diskfilter_read_node (&array->nodes[p], sector,
size >> GRUB_DISK_SECTOR_BITS, buf))
grub_crypto_xor (qbuf, qbuf, buf, size);
- c = (255 - bad1 + (255 - powx_inv[(powx[bad2 - bad1 + 255] ^ 1)])) % 255;
+ c = ((255 ^ bad1)
+ + (255 ^ powx_inv[(powx[bad2 + (bad1 ^ 255)] ^ 1)])) % 255;
grub_raid_block_mulx (c, qbuf, size);
- c = (bad2 + c) % 255;
+ c = ((unsigned) bad2 + c) % 255;
grub_raid_block_mulx (c, pbuf, size);
grub_crypto_xor (pbuf, pbuf, qbuf, size);