[Top] [All Lists]

Re: acl and attr: Fix path walking code

To: Andreas Gruenbacher <agruen@xxxxxxx>
Subject: Re: acl and attr: Fix path walking code
From: Timothy Shimmin <tes@xxxxxxx>
Date: Fri, 09 Nov 2007 18:39:56 +1100
Cc: linux-xfs@xxxxxxxxxxx, Gerald Bringhurst <gbringhurst@xxxxxxxxxx>, Brandon Philips <bphilips@xxxxxxx>
In-reply-to: <200710281858.24428.agruen@suse.de>
References: <200710281858.24428.agruen@suse.de>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird (Macintosh/20070728)
Andreas Gruenbacher wrote:

the tree walking code in acl and attr broke when resolve_symlinks() was introduced (by me, unfortunately). Following symlinks passed in on the command line is the intended behavior for the tools (unless in -P mode). The first version was buggy, and so someone "fixed" it by replacing readlink() with realpath() in resolve_symlinks().

The result is that the output of getfattr and getfacl will show pathnames that may point anywhere. When processing a directory tree it sometimes is helpful to treat symlinks as regular files, but resolving the pathnames is totally wrong.

After runnig into problem after problem with nftw and never ending up with even half-way clean code, I think it's time to ditch it altogether and replace it with sane code. So here are two patches, one for attr and one for acl, that does that.

Files include/walk_tree.h and libmisc/walk_tree.c are identical in both patches; that code is shared between the two packages.

Okay to apply?


You mention -L/-P is like chown. However, -P for getattr isn't about not walking symlinks to directories, it's about skipping symlinks altogether, right?


<Prev in Thread] Current Thread [Next in Thread>