On Wed, May 17, 2023 at 05:32:50PM -0500, Eric Blake wrote: > On Wed, May 17, 2023 at 11:06:59AM +0100, Richard W.M. Jones wrote: > > +static void > > +corrupt_all_bits (uint8_t *buf, uint32_t count, > > + struct random_state *rs, enum corruption_type ct) > > +{ > > + size_t i; > > + unsigned bit; > > + uint64_t rand; > > + > > + /* This is used when MAXP < P <= 100%. We treat it the same as 100% > > + * and corrupt all bits. > > + */ > > + for (i = 0; i < count; ++i) { > > + for (bit = 0; bit < 8; ++bit) { > > + rand = xrandom (rs); > > + buf[i] = corrupt_one_bit (buf[i], bit, rand, ct); > > + } > > + } > > Is this actually corrupting all bits, or corrupting 1 bit per byte? I > found the function name a bit confusing. (Doing XOR with -1 to invert > all bits is not the same as choosing a random bit pattern but where > only about 50% of the bits get flipped - but both behaviors can prove > interesting to see how filesystems cope with such corruptions)
Isn't it corrupting each bit in turn, in effect corrupting all of them? However we could use a local variable to store buf[i] during the inner loop. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs