diff options
Diffstat (limited to 'security/selinux/avc.c')
| -rw-r--r-- | security/selinux/avc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/security/selinux/avc.c b/security/selinux/avc.c index ac5d69bb3377..a300702da527 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c | |||
| @@ -800,7 +800,7 @@ out: | |||
| 800 | int avc_ss_reset(u32 seqno) | 800 | int avc_ss_reset(u32 seqno) |
| 801 | { | 801 | { |
| 802 | struct avc_callback_node *c; | 802 | struct avc_callback_node *c; |
| 803 | int i, rc = 0; | 803 | int i, rc = 0, tmprc; |
| 804 | unsigned long flag; | 804 | unsigned long flag; |
| 805 | struct avc_node *node; | 805 | struct avc_node *node; |
| 806 | 806 | ||
| @@ -813,15 +813,16 @@ int avc_ss_reset(u32 seqno) | |||
| 813 | 813 | ||
| 814 | for (c = avc_callbacks; c; c = c->next) { | 814 | for (c = avc_callbacks; c; c = c->next) { |
| 815 | if (c->events & AVC_CALLBACK_RESET) { | 815 | if (c->events & AVC_CALLBACK_RESET) { |
| 816 | rc = c->callback(AVC_CALLBACK_RESET, | 816 | tmprc = c->callback(AVC_CALLBACK_RESET, |
| 817 | 0, 0, 0, 0, NULL); | 817 | 0, 0, 0, 0, NULL); |
| 818 | if (rc) | 818 | /* save the first error encountered for the return |
| 819 | goto out; | 819 | value and continue processing the callbacks */ |
| 820 | if (!rc) | ||
| 821 | rc = tmprc; | ||
| 820 | } | 822 | } |
| 821 | } | 823 | } |
| 822 | 824 | ||
| 823 | avc_latest_notif_update(seqno, 0); | 825 | avc_latest_notif_update(seqno, 0); |
| 824 | out: | ||
| 825 | return rc; | 826 | return rc; |
| 826 | } | 827 | } |
| 827 | 828 | ||
