attr.c (a5a64498c194c82ecad3a2d67cff6231cda8d3dd) | attr.c (da9592edebceeba1b9301beafe80ec8b9c2db0ce) |
---|---|
1/* 2 * linux/fs/attr.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 * changes by Thomas Schoebel-Theuer 6 */ 7 8#include <linux/module.h> --- 15 unchanged lines hidden (view full) --- 24 unsigned int ia_valid = attr->ia_valid; 25 26 /* If force is set do it anyway. */ 27 if (ia_valid & ATTR_FORCE) 28 goto fine; 29 30 /* Make sure a caller can chown. */ 31 if ((ia_valid & ATTR_UID) && | 1/* 2 * linux/fs/attr.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 * changes by Thomas Schoebel-Theuer 6 */ 7 8#include <linux/module.h> --- 15 unchanged lines hidden (view full) --- 24 unsigned int ia_valid = attr->ia_valid; 25 26 /* If force is set do it anyway. */ 27 if (ia_valid & ATTR_FORCE) 28 goto fine; 29 30 /* Make sure a caller can chown. */ 31 if ((ia_valid & ATTR_UID) && |
32 (current->fsuid != inode->i_uid || | 32 (current_fsuid() != inode->i_uid || |
33 attr->ia_uid != inode->i_uid) && !capable(CAP_CHOWN)) 34 goto error; 35 36 /* Make sure caller can chgrp. */ 37 if ((ia_valid & ATTR_GID) && | 33 attr->ia_uid != inode->i_uid) && !capable(CAP_CHOWN)) 34 goto error; 35 36 /* Make sure caller can chgrp. */ 37 if ((ia_valid & ATTR_GID) && |
38 (current->fsuid != inode->i_uid || | 38 (current_fsuid() != inode->i_uid || |
39 (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) && 40 !capable(CAP_CHOWN)) 41 goto error; 42 43 /* Make sure a caller can chmod. */ 44 if (ia_valid & ATTR_MODE) { 45 if (!is_owner_or_cap(inode)) 46 goto error; --- 145 unchanged lines hidden --- | 39 (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) && 40 !capable(CAP_CHOWN)) 41 goto error; 42 43 /* Make sure a caller can chmod. */ 44 if (ia_valid & ATTR_MODE) { 45 if (!is_owner_or_cap(inode)) 46 goto error; --- 145 unchanged lines hidden --- |