From: Xiaoke Wang <xkernel.wang@xxxxxxxxxxx> audit_log_start() returns audit_buffer pointer on success or NULL on error. It is better to check the return value of it so to prevent potential memory access error. Signed-off-by: Xiaoke Wang <xkernel.wang@xxxxxxxxxxx> --- security/selinux/ss/services.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index e5f1b27..759d878 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -3277,11 +3277,13 @@ int security_sid_mls_copy(struct selinux_state *state, ab = audit_log_start(audit_context(), GFP_ATOMIC, AUDIT_SELINUX_ERR); - audit_log_format(ab, - "op=security_sid_mls_copy invalid_context="); - /* don't record NUL with untrusted strings */ - audit_log_n_untrustedstring(ab, s, len - 1); - audit_log_end(ab); + if (ab) { + audit_log_format(ab, + "op=security_sid_mls_copy invalid_context="); + /* don't record NUL with untrusted strings */ + audit_log_n_untrustedstring(ab, s, len - 1); + audit_log_end(ab); + } kfree(s); } goto out_unlock; --