- unsigned int byte_count = bit / 8;
- unsigned int bit_count = bit % 8;
-
- DEBUGP("bitfield=%p, byte_count=%u, bit_count=%u\n",
- bitfield, byte_count, bit_count);
- DEBUGP("%p = 0x%02x\n", (bitfield+byte_count), *(bitfield+byte_count));
- *(bitfield+byte_count) |= 1 << (bit_count-1);
- DEBUGP("%p = 0x%02x\n", (bitfield+byte_count), *(bitfield+byte_count));
+ unsigned int byte,rnd;
+
+ if(bit && (bit <= (size*8)) )
+ {
+ rnd=random_bit();
+
+ DEBUGP("xor'ing bit %u with %u\n",bit,rnd);
+ bit--;
+ byte=bit/8;
+ bit=rnd<<(bit%8);
+ bitfield[byte] ^= bit;
+ }