On Wednesday 07 November 2007 21:08, Paul Fox wrote:
> denys wrote:
>  > 
>  > Thus I propose introducing xmalloc_readlink_recursive()
>  > which does not suffer from those two problems,
>  > and using it here (and elsewhere: insmod, syslogd -
>  > grep for xmalloc_readlink).
> 
> well, i've written a new version, but it doesn't do what you
> thought it was going to.  :-)
> 
> realpath() fully canonicalizes a path -- it makes it absolute,
> removes "/..", and expands symlinks all along the path.
> 
> readlink() (and also xmalloc_readlink()) simply returns the value
> of the named symlink.

I did understand this difference.

> (which makes the switch from realpath() 
> to xmalloc_readlink() somewhat suspicious, by the way.)

?
 
> i've written xmalloc_readlink_follow(char *path) which iteratively
> does textual expansion of path, expanding symlinks at the tail end
> of path.  no other canonicalization is done, and the result is not
> necessarily absolute.  this is the minimum needed for my "allow
> /etc/passwd to be a symlink" change, and it's probably useful for
> most of the other current uses of xmalloc_readlink().

Yes. Feel free to fix syslogd's use of xmalloc_readlink() too
(currently it will break if /dev/log is a link to link).
--
vda
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to