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 ---