| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: Richard Guy Briggs <rgb@redhat.com> |
| Date: Wed, 21 Feb 2018 04:30:07 -0500 |
| Subject: audit: return on memory error to avoid null pointer dereference |
| |
| From: Richard Guy Briggs <rgb@redhat.com> |
| |
| [ Upstream commit 23138ead270045f1b3e912e667967b6094244999 ] |
| |
| If there is a memory allocation error when trying to change an audit |
| kernel feature value, the ignored allocation error will trigger a NULL |
| pointer dereference oops on subsequent use of that pointer. Return |
| instead. |
| |
| Passes audit-testsuite. |
| See: https://github.com/linux-audit/audit-kernel/issues/76 |
| |
| Signed-off-by: Richard Guy Briggs <rgb@redhat.com> |
| [PM: not necessary (other funcs check for NULL), but a good practice] |
| Signed-off-by: Paul Moore <paul@paul-moore.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| kernel/audit.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/kernel/audit.c |
| +++ b/kernel/audit.c |
| @@ -742,6 +742,8 @@ static void audit_log_feature_change(int |
| return; |
| |
| ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_FEATURE_CHANGE); |
| + if (!ab) |
| + return; |
| audit_log_task_info(ab, current); |
| audit_log_format(ab, " feature=%s old=%u new=%u old_lock=%u new_lock=%u res=%d", |
| audit_feature_names[which], !!old_feature, !!new_feature, |