for (i = 0; i < num_bytes; i++)
to[i] = from[i];
+
+ /* mask out bits that don't belong to the buffer */
+ if (size % 8)
+ {
+ to[size / 8] &= (0xff >> (8 - (size % 8)));
+ }
return to;
}
/* mask out bits that don't really belong to the buffer if size isn't a multiple of 8 bits */
if ((size % 8) && (i == num_bytes -1 ))
{
- if (((buf1[i] & ((1 << (size % 8)) - 1)) & ((1 << (size % 8)) - 1)) !=
- ((buf2[i] & ((1 << (size % 8)) - 1)) & ((1 << (size % 8)) - 1)))
+ if ((buf1[i] & ((1 << (size % 8)) - 1) & mask[i]) !=
+ (buf2[i] & ((1 << (size % 8)) - 1) & mask[i]))
return 1;
}
else
}
for (j = 0; j < CEIL(buf_len, 8); j++)
- buf[j] = b256_buf[j];
+ {
+ if (j < b256_len)
+ buf[j] = b256_buf[j];
+ else
+ buf[j] = 0;
+ }
/* mask out bits that don't belong to the buffer */
if (buf_len % 8)
return i;
}
-int buf_to_u32_handler(u8 *in_buf, void *priv)
+int buf_to_u32_handler(u8 *in_buf, void *priv, struct scan_field_s *field)
{
u32 *dest = priv;