summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-05-09 15:33:54 +0200
committerThomas Haller <thaller@redhat.com>2022-05-09 15:33:54 +0200
commitd2f71b273e2566e75eebc24980d1dbe95f4d5947 (patch)
tree5947f0a1580801512173f48a313578d2ba496569
parent9ee37e42e1f9d9aa439aa44a5e2e33261dfaf118 (diff)
audit: handle error from audit_encode_nv_string()th/platform-struct-packing
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.
-rw-r--r--src/core/nm-audit-manager.c7
1 files 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;