diff options
Diffstat (limited to 'security')
-rw-r--r-- | security/keys/key.c | 3 | ||||
-rw-r--r-- | security/keys/keyring.c | 8 | ||||
-rw-r--r-- | security/selinux/ss/policydb.c | 12 |
3 files changed, 11 insertions, 12 deletions
diff --git a/security/keys/key.c b/security/keys/key.c index ccde17aff6..01bcfecb7e 100644 --- a/security/keys/key.c +++ b/security/keys/key.c | |||
@@ -115,8 +115,7 @@ struct key_user *key_user_lookup(uid_t uid) | |||
115 | found: | 115 | found: |
116 | atomic_inc(&user->usage); | 116 | atomic_inc(&user->usage); |
117 | spin_unlock(&key_user_lock); | 117 | spin_unlock(&key_user_lock); |
118 | if (candidate) | 118 | kfree(candidate); |
119 | kfree(candidate); | ||
120 | out: | 119 | out: |
121 | return user; | 120 | return user; |
122 | 121 | ||
diff --git a/security/keys/keyring.c b/security/keys/keyring.c index e1cc4dd790..c7a0ab1cfd 100644 --- a/security/keys/keyring.c +++ b/security/keys/keyring.c | |||
@@ -434,8 +434,8 @@ ascend: | |||
434 | if (sp >= KEYRING_SEARCH_MAX_DEPTH) | 434 | if (sp >= KEYRING_SEARCH_MAX_DEPTH) |
435 | continue; | 435 | continue; |
436 | 436 | ||
437 | if (!key_task_permission(make_key_ref(key, possessed), | 437 | if (key_task_permission(make_key_ref(key, possessed), |
438 | context, KEY_SEARCH) < 0) | 438 | context, KEY_SEARCH) < 0) |
439 | continue; | 439 | continue; |
440 | 440 | ||
441 | /* stack the current position */ | 441 | /* stack the current position */ |
@@ -621,8 +621,8 @@ struct key *find_keyring_by_name(const char *name, key_serial_t bound) | |||
621 | if (strcmp(keyring->description, name) != 0) | 621 | if (strcmp(keyring->description, name) != 0) |
622 | continue; | 622 | continue; |
623 | 623 | ||
624 | if (!key_permission(make_key_ref(keyring, 0), | 624 | if (key_permission(make_key_ref(keyring, 0), |
625 | KEY_SEARCH) < 0) | 625 | KEY_SEARCH) < 0) |
626 | continue; | 626 | continue; |
627 | 627 | ||
628 | /* found a potential candidate, but we still need to | 628 | /* found a potential candidate, but we still need to |
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index 2f5f539875..0ac311dc83 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c | |||
@@ -632,22 +632,22 @@ void policydb_destroy(struct policydb *p) | |||
632 | cond_policydb_destroy(p); | 632 | cond_policydb_destroy(p); |
633 | 633 | ||
634 | for (tr = p->role_tr; tr; tr = tr->next) { | 634 | for (tr = p->role_tr; tr; tr = tr->next) { |
635 | if (ltr) kfree(ltr); | 635 | kfree(ltr); |
636 | ltr = tr; | 636 | ltr = tr; |
637 | } | 637 | } |
638 | if (ltr) kfree(ltr); | 638 | kfree(ltr); |
639 | 639 | ||
640 | for (ra = p->role_allow; ra; ra = ra -> next) { | 640 | for (ra = p->role_allow; ra; ra = ra -> next) { |
641 | if (lra) kfree(lra); | 641 | kfree(lra); |
642 | lra = ra; | 642 | lra = ra; |
643 | } | 643 | } |
644 | if (lra) kfree(lra); | 644 | kfree(lra); |
645 | 645 | ||
646 | for (rt = p->range_tr; rt; rt = rt -> next) { | 646 | for (rt = p->range_tr; rt; rt = rt -> next) { |
647 | if (lrt) kfree(lrt); | 647 | kfree(lrt); |
648 | lrt = rt; | 648 | lrt = rt; |
649 | } | 649 | } |
650 | if (lrt) kfree(lrt); | 650 | kfree(lrt); |
651 | 651 | ||
652 | if (p->type_attr_map) { | 652 | if (p->type_attr_map) { |
653 | for (i = 0; i < p->p_types.nprim; i++) | 653 | for (i = 0; i < p->p_types.nprim; i++) |