Module Name:    src
Committed By:   christos
Date:           Tue Nov 24 16:38:31 UTC 2020

Modified Files:
        src/sys/fs/ptyfs: ptyfs_vnops.c

Log Message:
PR/55821: tar can not extract base.tgz anymore (./dev/pts and mounted ptyfs)
Allow chown/chmod at the root of ptyfs.


To generate a diff of this commit:
cvs rdiff -u -r1.60 -r1.61 src/sys/fs/ptyfs/ptyfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/fs/ptyfs/ptyfs_vnops.c
diff -u src/sys/fs/ptyfs/ptyfs_vnops.c:1.60 src/sys/fs/ptyfs/ptyfs_vnops.c:1.61
--- src/sys/fs/ptyfs/ptyfs_vnops.c:1.60	Sat Jun 27 13:29:18 2020
+++ src/sys/fs/ptyfs/ptyfs_vnops.c	Tue Nov 24 11:38:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptyfs_vnops.c,v 1.60 2020/06/27 17:29:18 christos Exp $	*/
+/*	$NetBSD: ptyfs_vnops.c,v 1.61 2020/11/24 16:38:31 christos Exp $	*/
 
 /*
  * Copyright (c) 1993, 1995
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.60 2020/06/27 17:29:18 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.61 2020/11/24 16:38:31 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -456,8 +456,6 @@ ptyfs_setattr(void *v)
 	if (vap->va_uid != (uid_t)VNOVAL || vap->va_gid != (gid_t)VNOVAL) {
 		if (vp->v_mount->mnt_flag & MNT_RDONLY)
 			return EROFS;
-		if (ptyfs->ptyfs_type == PTYFSroot)
-			return EPERM;
 		error = ptyfs_chown(vp, vap->va_uid, vap->va_gid, cred, l);
 		if (error)
 			return error;
@@ -492,8 +490,6 @@ ptyfs_setattr(void *v)
 	if (vap->va_mode != (mode_t)VNOVAL) {
 		if (vp->v_mount->mnt_flag & MNT_RDONLY)
 			return EROFS;
-		if (ptyfs->ptyfs_type == PTYFSroot)
-			return EPERM;
 		if ((ptyfs->ptyfs_flags & SF_SNAPSHOT) != 0 &&
 		    (vap->va_mode &
 		    (S_IXUSR|S_IWUSR|S_IXGRP|S_IWGRP|S_IXOTH|S_IWOTH)))

Reply via email to