• G
    9pfs: fix O_PATH build break with older glibc versions · 918112c0
    Greg Kurz 提交于
    When O_PATH is used with O_DIRECTORY, it only acts as an optimization: the
    openat() syscall simply finds the name in the VFS, and doesn't trigger the
    underlying filesystem.
    
    On systems that don't define O_PATH, because they have glibc version 2.13
    or older for example, we can safely omit it. We don't want to deactivate
    O_PATH globally though, in case it is used without O_DIRECTORY. The is done
    with a dedicated macro.
    
    Systems without O_PATH may thus fail to resolve names that involve
    unreadable directories, compared to newer systems succeeding, but such
    corner case failure is our only option on those older systems to avoid
    the security hole of chasing symlinks inappropriately.
    Signed-off-by: NGreg Kurz <groug@kaod.org>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    (added last paragraph to changelog as suggested by Eric Blake)
    Signed-off-by: NGreg Kurz <groug@kaod.org>
    918112c0
9p-util.h 1.4 KB