Hi,

  I've been looking at grub-setup.c and am perplexed by the following code:


  /* Make sure that GRUB reads the identical image as the OS.  */
  tmp_img = xmalloc (core_size);
  core_path_dev = grub_util_get_path (dir, core_file);

  /* It is a Good Thing to sync two times.  */
  sync ();
  sync ();

#define MAX_TRIES       5

  for (i = 0; i < MAX_TRIES; i++)
    {
      grub_util_info ("attempting to read the core image `%s' from GRUB%s",
                      core_path_dev, (i == 0) ? "" : " again");

      grub_disk_cache_invalidate_all ();

      file = grub_file_open (core_path_dev);
      if (file)
        {
          if (grub_file_size (file) != core_size)

  ....



Has the blocklist (--force) code path been tested? Since grub_file_open fails if there's no device specified in the string, and since core_path_dev cannot include a device spec (since it's a concatenation of the grub directory + the core filename), I can't see how this loop could work, but I may be missing something :).


 Thanks,
 --S


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to