[Libguestfs] [PATCH 2/2] actions: turn some params into RelativePathnameList (RHBZ#1174551).
Richard W.M. Jones
rjones at redhat.com
Tue Oct 20 14:22:22 UTC 2015
On Tue, Oct 20, 2015 at 03:50:31PM +0200, Pino Toscano wrote:
> On Tuesday 20 October 2015 14:43:53 Richard W.M. Jones wrote:
> > On Tue, Oct 20, 2015 at 01:59:10PM +0200, Pino Toscano wrote:
> > > Use RelativePathnameList as type for lists of relative paths, as used in
> > > some listing-alike APIs. This way we can ensure absolute paths in those
> > > lists are rejects outright.
> > >
> > > As a consequence, test-big-dirs.pl does not need to prepend the
> > > directory name anymore before calling listing-alike APIs: previously
> > > they didn't fail, but the returned lists contained only invalid
> > > elements (and only their size was checked).
> >
> > Are these all relative pathnames, or are they in fact just filenames
> > without any path at all. That is to say: is "foo/bar" permitted, or
> > just "bar"?
>
> At least with *lstat*list and *readlinklist functions, the file names
> are considered as relative wrt the path specified, as they are resolved
> against the file descriptor of the directory.
>
> In case of *lxattrlist, the absolute path+name for each is built and
> used as path within the guest.
>
> So yes, "bar", "foo/bar", and "../bar" too, should work.
I think I really meant -- is it a caller bug if the parameter contains
a slash in it?
All the *list functions were really intended as optimizations for
fuse/guestmount, and IIRC it was intended that only filenames (not
even relative paths) be used there.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
More information about the Libguestfs
mailing list