grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATH] grub-mkrelpath


From: Felix Zielcke
Subject: Re: [PATH] grub-mkrelpath
Date: Sat, 29 Aug 2009 09:51:15 +0200

Am Samstag, den 29.08.2009, 01:55 +0200 schrieb Robert Millan:
> On Fri, Aug 28, 2009 at 07:58:39PM +0200, Felix Zielcke wrote:
> > +#else /* ! HAVE_REALPATH */
> > +  grub_util_warn ("grub-mkrelpath might not work on your OS correctly.");
> > +  /* make relative path absolute.  */
> > +  if (*path != '/')
> > +    {
> > +      len = 1024;
> > +      buf2 = xmalloc (len);
> > +      do
> > +   {
> > +     buf2 = getcwd (buf2, len);
> > +     if (buf2 == NULL)
> > +       {
> > +         if (errno != ERANGE)
> > +           grub_util_error ("can not get current working directory");
> > +         else
> > +           len *= 2;
> > +         buf2 = xrealloc (buf2, len);
> > +       }
> > +   } while (buf2 == NULL);
> > +      buf = xmalloc (strlen (path) + strlen (buf2) + 1);
> > +      strcpy (buf, buf2);
> > +      strcat (buf, "/");
> > +      strcat (buf, path);
> > +    }
> > +  else
> > +      buf = strdup (path);
> > +#endif /* ! HAVE_REALPATH */
> 
> Please can you leave this part out?  realpath() is POSIX, so it should be
> present in all systems we support, and if it isn't, we should be using a
> complete implementation from Gnulib instead, but we don't need to worry
> about this untill/unless someone reports it as a problem.

Ok, but should I then check in configure.ac that realpath is required or
something else?
Or should I just assume that realpath is always avaible?

> > +      p = strrchr (buf, '/');
> > +      if (p == NULL)
> > +   grub_util_error ("FIXME: no / in buf. 
> > (make_system_path_relative_to_its_root)");
> 
> Does this ever happen?

As Vladimir said, it shouldn't ever happen, but I thought it would be
better to check for this explicitly instead of core dumping in that
case.


-- 
Felix Zielcke
Proud Debian Maintainer





reply via email to

[Prev in Thread] Current Thread [Next in Thread]