On Mittwoch, 27. April 2022 12:21:51 CEST Greg Kurz wrote: > On Wed, 27 Apr 2022 10:46:31 +0200 > > Christian Schoenebeck <qemu_...@crudebyte.com> wrote: > > On Mittwoch, 27. April 2022 04:45:45 CEST Akihiko Odaki wrote: > > > Signed-off-by: Akihiko Odaki <akihiko.od...@gmail.com> > > > --- > > > > > > hw/9pfs/9p-local.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c > > > index d42ce6d8b82..def8afdb4d6 100644 > > > --- a/hw/9pfs/9p-local.c > > > +++ b/hw/9pfs/9p-local.c > > > @@ -365,7 +365,7 @@ static int fchmodat_nofollow(int dirfd, const char > > > *name, mode_t mode) if (fd == -1) { > > > > > > /* In case the file is writable-only and isn't a directory. */ > > > if (errno == EACCES) { > > > > > > - fd = openat_file(dirfd, name, O_WRONLY, 0); > > > + fd = openat_file(dirfd, name, O_WRONLY | O_NOFOLLOW, 0); > > > > O_NOFOLLOW flag is always added inside openat_file() implementation: > > > > https://github.com/qemu/qemu/blob/master/hw/9pfs/9p-util.h#L60 > > > > So this change is not necessary AFAICS. > > Right, and with macOS in mind, maybe fchmodat(AT_SYMLINK_NOFOLLOW) just > works unlike with linux ?
Yep, fchmodat(AT_SYMLINK_NOFOLLOW) seems to work on macOS! Like you already suggested on the other thread, it would make sense to move current implementation of fchmodat_nofollow() to 9p-util-linux.h/.c and let macOS just use fchmodat(AT_SYMLINK_NOFOLLOW) instead. Best regards, Christian Schoenebeck