Subject: Re: bug#10472: [PATCH] realpath: fix problems with // handling

From: Eric Blake <[email-masked]>
Date: Tue, 13 Mar 2012 22:07:41 -0600

On 03/13/2012 09:15 PM, Eric Blake wrote:
>> Also doesn't path_prefix() need the same adjustment,
>> so as to verify --relative-base in the same way?
> 
> Yes, it looks like it.

In fact, I found another bug, this time present also on Linux:

$ realpath --relative-base=/ --relative-to=/ /
/

when it should really output '.' (since '/' relative to itself is '.',
and ALL files are below '/' [except when '//' is special]).  Likewise:

$ realpath --relative-base=/usr/local --relative-to=/usr \
    /usr /usr/local/lib
/usr
/usr/local/lib

when it should really output '/usr' (absolute, since it is not a child
of /usr/local) and 'local/lib' (which is a file below /usr/local, and an
output name relative to /usr).

My test caught these, so now I have to revisit my realpath.c patch.
It's getting too late tonight, so I'll have to post the series early
tomorrow.

-- 
Eric Blake   [email-masked]    +1-919-301-3266
Libvirt virtualization library http://libvirt.org