On Fri, 2 Aug 2019 11:27:45 -0500 Jason Wessel <jason.wes...@windriver.com> wrote:
> The sequence of openat() followed by an fstat() on the opened file > handle, will erase the pseudo uid entry for the symlink, as shown by > the following lstat() in test 5. The culprit appears to be the > fstat(), but it could be something much more complex than that... > The next step is to figure out why the recent change to openat() to > address test case 1, caused this new problem. I suspect I know that one, although I'm not sure I know the details. Pseudo will destroy entries of incompatible directory-entry types; for instance, if it has the same path listed as both a plain file and a directory. But consider, from openat.c: #ifdef PSEUDO_NO_REAL_AT_FUNCTIONS rc = real___xstat64(_STAT_VER, path, &buf); #else rc = real___fxstatat64(_STAT_VER, dirfd, path, &buf, 0); #endif Note that there's no lstat, and no AT_SYMLINK_NOFOLLOW. Which is to say, these stats will be following the symlink even though O_NOFOLLOW was set. I can probably patch this in a bit. -s -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core