From d0383937a2599fd36f1139c962cbc270d2a8079d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 9 May 2022 15:33:54 +0200 Subject: [PATCH] audit: handle error from audit_encode_nv_string() audit_encode_nv_string() is documented that it might fail. Handle the error. Also, the returned string was allocated with malloc(). We must free that with free()/nm_auto_free, not g_free()/gs_free. Fixes: be49a59fb649 ('core: add audit support') (cherry picked from commit 6ebc6223033b50c660a88cb02e21697f8994b4c7) (cherry picked from commit 7f0d9a9091b21a7c336dbd85f85e473ccb389ae3) --- src/core/nm-audit-manager.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/nm-audit-manager.c b/src/core/nm-audit-manager.c index dd96d834e5..4e134d1a3c 100644 --- a/src/core/nm-audit-manager.c +++ b/src/core/nm-audit-manager.c @@ -135,10 +135,13 @@ build_message(NMStrBuf *strbuf, AuditBackend backend, GPtrArray *fields) #if HAVE_LIBAUDIT if (backend == BACKEND_AUDITD) { if (field->need_encoding) { - gs_free char *value = NULL; + nm_auto_free char *value = NULL; value = audit_encode_nv_string(field->name, str, 0); - nm_str_buf_append(strbuf, value); + if (value) + nm_str_buf_append(strbuf, value); + else + nm_str_buf_append_printf(strbuf, "%s=???", field->name); } else nm_str_buf_append_printf(strbuf, "%s=%s", field->name, str); continue;