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

Reply via email to