On Tue, Jul 28, 2009 at 7:55 PM, Robert Millan<r...@aybabtu.com> wrote: > 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. Any problems with this one? > > -- > 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 >
-- Regards Vladimir 'phcoder' Serbinenko Personal git repository: http://repo.or.cz/w/grub2/phcoder.git _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel