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
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel