On Thu, Sep 21, 2006 at 03:55:54AM +0200, Yoshinori K. Okuji wrote:
> On Sunday 17 September 2006 22:39, Robert Millan wrote:
> > Please consider (mostly useful to support device.map generated by GRUB
> > legacy):
> >
> > 2006-09-17  Robert Millan  <[EMAIL PROTECTED]>
> >
> >     * util/i386/pc/biosdisk.c (read_device_map): Don't abort with error if
> >     realpath fails (e.g. to cope with missing /dev/fd0 when we're aren't
> >     writing to floppy).
> 
> Can you elaborate on the purpose? Personally I prefer a strict check for this 
> part, since the installation of GRUB is potentially very dangerous!

Sure.  The purpose of realpath here isn't really to verify device existance;
that ought to happen later if (and only if) we're actualy going to use that
device.

Suppose this device.map:

(hd0)   /dev/hda
(xxx)   /dev/idontexist

Theoricaly, when grub-setup is told to act on (hd0) it shouldn't care that
/dev/idontexist doesn't exist (it could be listed because it was generated
by an older grub, because the device disappeared, etc).  However, because of the
realpath canonicalisation, as a collateral result we get to abort if _any_ of
the entries are wrong:

#ifdef __linux__
      /* On Linux, the devfs uses symbolic links horribly, and that
         confuses the interface very much, so use realpath to expand
         symbolic links.  */
      map[drive] = xmalloc (PATH_MAX);
      if (! realpath (p, map[drive]))
        grub_util_error ("Cannot get the real path of `%s'", p);
#else
      map[drive] = xstrdup (p);
#endif

My point is that grub should be fault tollerant and not care that
/dev/idontexist is broken, specialy since device.map is a file that is
subject for input from either user or older grub (including grub legacy),
and we have little control about its contents.

-- 
Robert Millan

My spam trap is [EMAIL PROTECTED]  Note: this address is only intended for
spam harvesters.  Writing to it will get you added to my black list.


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

Reply via email to