diff options
author | Dan Willemsen <dwillemsen@nvidia.com> | 2011-08-23 15:28:56 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-08-23 15:28:56 -0700 |
commit | 3f415d5be55195a41c47ca3bf92e6b2c079fc8d5 (patch) | |
tree | 2a4e15fad1d965210b261643bf16ef51cb31e581 /security | |
parent | ebdf93b2c71d29ec1c7c1d728d0d55f8045d565f (diff) | |
parent | 96bf667ad140cf86071c5a3eaaaab20a2ece47eb (diff) |
Merge branch 'linux-tegra-nv-2.6.39' into android-tegra-nv-2.6.39
Conflicts:
drivers/cpufreq/cpufreq_stats.c
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Diffstat (limited to 'security')
-rw-r--r-- | security/apparmor/lsm.c | 5 | ||||
-rw-r--r-- | security/keys/process_keys.c | 1 | ||||
-rw-r--r-- | security/keys/request_key.c | 3 | ||||
-rw-r--r-- | security/tomoyo/mount.c | 2 |
4 files changed, 7 insertions, 4 deletions
diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c index ae3a698415e6..3d2fd141dff7 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -593,7 +593,8 @@ static int apparmor_setprocattr(struct task_struct *task, char *name, sa.aad.op = OP_SETPROCATTR; sa.aad.info = name; sa.aad.error = -EINVAL; - return aa_audit(AUDIT_APPARMOR_DENIED, NULL, GFP_KERNEL, + return aa_audit(AUDIT_APPARMOR_DENIED, + __aa_current_profile(), GFP_KERNEL, &sa, NULL); } } else if (strcmp(name, "exec") == 0) { @@ -611,7 +612,7 @@ static int apparmor_setprocattr(struct task_struct *task, char *name, static int apparmor_task_setrlimit(struct task_struct *task, unsigned int resource, struct rlimit *new_rlim) { - struct aa_profile *profile = aa_current_profile(); + struct aa_profile *profile = __aa_current_profile(); int error = 0; if (!unconfined(profile)) diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c index 930634e45149..7a0c5868651f 100644 --- a/security/keys/process_keys.c +++ b/security/keys/process_keys.c @@ -845,6 +845,7 @@ void key_replace_session_keyring(void) new-> sgid = old-> sgid; new->fsgid = old->fsgid; new->user = get_uid(old->user); + new->user_ns = new->user->user_ns; new->group_info = get_group_info(old->group_info); new->securebits = old->securebits; diff --git a/security/keys/request_key.c b/security/keys/request_key.c index df3c0417ee40..6197a267febb 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c @@ -470,7 +470,7 @@ static struct key *construct_key_and_link(struct key_type *type, } else if (ret == -EINPROGRESS) { ret = 0; } else { - key = ERR_PTR(ret); + goto couldnt_alloc_key; } key_put(dest_keyring); @@ -480,6 +480,7 @@ static struct key *construct_key_and_link(struct key_type *type, construction_failed: key_negate_and_link(key, key_negative_timeout, NULL, NULL); key_put(key); +couldnt_alloc_key: key_put(dest_keyring); kleave(" = %d", ret); return ERR_PTR(ret); diff --git a/security/tomoyo/mount.c b/security/tomoyo/mount.c index 82bf8c2390bc..afa07cf1985f 100644 --- a/security/tomoyo/mount.c +++ b/security/tomoyo/mount.c @@ -138,7 +138,7 @@ static int tomoyo_mount_acl(struct tomoyo_request_info *r, char *dev_name, } if (need_dev) { /* Get mount point or device file. */ - if (kern_path(dev_name, LOOKUP_FOLLOW, &path)) { + if (!dev_name || kern_path(dev_name, LOOKUP_FOLLOW, &path)) { error = -ENOENT; goto out; } |