svn commit: r281086 - head/sys/kern

Sergey Kandaurov pluknet at freebsd.org
Sat Apr 4 23:23:07 UTC 2015


On 5 April 2015 at 00:47, Jilles Tjoelker <jilles at freebsd.org> wrote:
> Author: jilles
> Date: Sat Apr  4 21:47:54 2015
> New Revision: 281086
> URL: https://svnweb.freebsd.org/changeset/base/281086
>
> Log:
>   utimensat: Correct Capsicum required capability rights.
>
> Modified:
>   head/sys/kern/vfs_syscalls.c
>
> Modified: head/sys/kern/vfs_syscalls.c
> ==============================================================================
> --- head/sys/kern/vfs_syscalls.c        Sat Apr  4 21:34:26 2015        (r281085)
> +++ head/sys/kern/vfs_syscalls.c        Sat Apr  4 21:47:54 2015        (r281086)
> @@ -3294,6 +3294,7 @@ kern_utimensat(struct thread *td, int fd
>  {
>         struct nameidata nd;
>         struct timespec ts[2];
> +       cap_rights_t rights;
>         int error, flags;
>
>         if (flag & ~AT_SYMLINK_NOFOLLOW)
> @@ -3301,8 +3302,9 @@ kern_utimensat(struct thread *td, int fd
>
>         if ((error = getutimens(tptr, tptrseg, ts, &flags)) != 0)
>                 return (error);
> -       NDINIT_AT(&nd, LOOKUP, ((flag & AT_SYMLINK_NOFOLLOW) ? NOFOLLOW :
> -           FOLLOW) | AUDITVNODE1, pathseg, path, fd, td);
> +       NDINIT_ATRIGHTS(&nd, LOOKUP, ((flag & AT_SYMLINK_NOFOLLOW) ? NOFOLLOW :
> +           FOLLOW) | AUDITVNODE1, pathseg, path, fd,
> +           cap_rights_init(&rights, CAP_FUTIMES), td);
>         if ((error = namei(&nd)) != 0)
>                 return (error);
>         /*
>

What about kern_lutimes()?
It seems it needs CAP_FUTIMES as well due its path argument.

-- 
wbr,
pluknets


More information about the svn-src-all mailing list