exec.c (3423166fdbc2444bf3a4a27af1d7508364a17be7) | exec.c (259e5e6c75a910f3b5e656151dc602f53f9d7548) |
---|---|
1/* 2 * linux/fs/exec.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 */ 6 7/* 8 * #!-checking implemented by tytso. --- 1231 unchanged lines hidden (view full) --- 1240 1241 if (p->ptrace) { 1242 if (p->ptrace & PT_PTRACE_CAP) 1243 bprm->unsafe |= LSM_UNSAFE_PTRACE_CAP; 1244 else 1245 bprm->unsafe |= LSM_UNSAFE_PTRACE; 1246 } 1247 | 1/* 2 * linux/fs/exec.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 */ 6 7/* 8 * #!-checking implemented by tytso. --- 1231 unchanged lines hidden (view full) --- 1240 1241 if (p->ptrace) { 1242 if (p->ptrace & PT_PTRACE_CAP) 1243 bprm->unsafe |= LSM_UNSAFE_PTRACE_CAP; 1244 else 1245 bprm->unsafe |= LSM_UNSAFE_PTRACE; 1246 } 1247 |
1248 /* 1249 * This isn't strictly necessary, but it makes it harder for LSMs to 1250 * mess up. 1251 */ 1252 if (current->no_new_privs) 1253 bprm->unsafe |= LSM_UNSAFE_NO_NEW_PRIVS; 1254 |
|
1248 n_fs = 1; 1249 spin_lock(&p->fs->lock); 1250 rcu_read_lock(); 1251 for (t = next_thread(p); t != p; t = next_thread(t)) { 1252 if (t->fs == p->fs) 1253 n_fs++; 1254 } 1255 rcu_read_unlock(); --- 27 unchanged lines hidden (view full) --- 1283 mode = inode->i_mode; 1284 if (bprm->file->f_op == NULL) 1285 return -EACCES; 1286 1287 /* clear any previous set[ug]id data from a previous binary */ 1288 bprm->cred->euid = current_euid(); 1289 bprm->cred->egid = current_egid(); 1290 | 1255 n_fs = 1; 1256 spin_lock(&p->fs->lock); 1257 rcu_read_lock(); 1258 for (t = next_thread(p); t != p; t = next_thread(t)) { 1259 if (t->fs == p->fs) 1260 n_fs++; 1261 } 1262 rcu_read_unlock(); --- 27 unchanged lines hidden (view full) --- 1290 mode = inode->i_mode; 1291 if (bprm->file->f_op == NULL) 1292 return -EACCES; 1293 1294 /* clear any previous set[ug]id data from a previous binary */ 1295 bprm->cred->euid = current_euid(); 1296 bprm->cred->egid = current_egid(); 1297 |
1291 if (!(bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID)) { | 1298 if (!(bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) && 1299 !current->no_new_privs) { |
1292 /* Set-uid? */ 1293 if (mode & S_ISUID) { 1294 bprm->per_clear |= PER_CLEAR_ON_SETID; 1295 bprm->cred->euid = inode->i_uid; 1296 } 1297 1298 /* Set-gid? */ 1299 /* --- 995 unchanged lines hidden --- | 1300 /* Set-uid? */ 1301 if (mode & S_ISUID) { 1302 bprm->per_clear |= PER_CLEAR_ON_SETID; 1303 bprm->cred->euid = inode->i_uid; 1304 } 1305 1306 /* Set-gid? */ 1307 /* --- 995 unchanged lines hidden --- |