• Miklos Szeredi's avatar
    ovl: fix uid/gid when creating over whiteout · d0e13f5b
    Miklos Szeredi authored
    Fix a regression when creating a file over a whiteout.  The new
    file/directory needs to use the current fsuid/fsgid, not the ones from the
    mounter's credentials.
    
    The refcounting is a bit tricky: prepare_creds() sets an original refcount,
    override_creds() gets one more, which revert_cred() drops.  So
    
      1) we need to expicitly put the mounter's credentials when overriding
         with the updated one
    
      2) we need to put the original ref to the updated creds (and this can
         safely be done before revert_creds(), since we'll still have the ref
         from override_creds()).
    Reported-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
    Fixes: 3fe6e52f ("ovl: override creds with the ones from the superblock mounter")
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    d0e13f5b
dir.c 20.3 KB