On Sun, Jul 26, 2009 at 12:58:59AM +0200, Vladimir 'phcoder' Serbinenko wrote: > + /* This is our loop-detection algorithm. It works the following way: > + It saves last position which was a power of two. Then it compares the > + saved value with a current one. This way it's guaranteed that the loop > + will be broken by at most third walk. > + */ > + if (lastaddr == p.offset) > + return grub_error (GRUB_ERR_BAD_PART_TABLE, "loop detected"); > + > + labeln++; > + if (labeln == (lastlabeln << 1)) > + { > + lastaddr = p.offset; > + lastlabeln <<= 1; > + }
I would prefer something simpler, but if that's not possible, this is better than hardcoding a number IMO. Unless Pavel has any objection, I think it's ok. -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all." _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel