diff options
author | Thomas Haller <thaller@redhat.com> | 2021-04-09 13:44:49 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-04-12 16:46:01 +0200 |
commit | ba2bb8d741a7e710d6e900d3a987fe1d798b9f52 (patch) | |
tree | 53c2e2cc73d88a156144dce83ca7076c0fea4beb | |
parent | ab3546b8e1c46ca919d5d7303a117d52ccd4d980 (diff) | |
download | NetworkManager-ba2bb8d741a7e710d6e900d3a987fe1d798b9f52.tar.gz |
audit: use NMStrBuf in audit's build_message()
-rw-r--r-- | src/core/nm-audit-manager.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/src/core/nm-audit-manager.c b/src/core/nm-audit-manager.c index 2352aa84e0..7517a1ab9a 100644 --- a/src/core/nm-audit-manager.c +++ b/src/core/nm-audit-manager.c @@ -11,6 +11,7 @@ #include <libaudit.h> #endif +#include "libnm-glib-aux/nm-str-buf.h" #include "libnm-core-aux-intern/nm-auth-subject.h" #include "nm-config.h" #include "nm-dbus-manager.h" @@ -104,23 +105,16 @@ _audit_field_init_uint(AuditField *field, const char *name, uint val, AuditBacke static char * build_message(GPtrArray *fields, AuditBackend backend) { - GString * string; - AuditField *field; - gboolean first = TRUE; - guint i; - - string = g_string_new(NULL); + NMStrBuf strbuf = NM_STR_BUF_INIT(NM_UTILS_GET_NEXT_REALLOC_SIZE_232, FALSE); + guint i; for (i = 0; i < fields->len; i++) { - field = fields->pdata[i]; + AuditField *field = fields->pdata[i]; if (!NM_FLAGS_ANY(field->backends, backend)) continue; - if (first) - first = FALSE; - else - g_string_append_c(string, ' '); + nm_str_buf_append_required_delimiter(&strbuf, ' '); if (G_VALUE_HOLDS_STRING(&field->value)) { const char *str = g_value_get_string(&field->value); @@ -128,23 +122,25 @@ build_message(GPtrArray *fields, AuditBackend backend) #if HAVE_LIBAUDIT if (backend == BACKEND_AUDITD) { if (field->need_encoding) { - char *value; + gs_free char *value = NULL; value = audit_encode_nv_string(field->name, str, 0); - g_string_append(string, value); - g_free(value); + nm_str_buf_append(&strbuf, value); } else - g_string_append_printf(string, "%s=%s", field->name, str); + nm_str_buf_append_printf(&strbuf, "%s=%s", field->name, str); continue; } #endif /* HAVE_LIBAUDIT */ - g_string_append_printf(string, "%s=\"%s\"", field->name, str); + nm_str_buf_append_printf(&strbuf, "%s=\"%s\"", field->name, str); } else if (G_VALUE_HOLDS_UINT(&field->value)) { - g_string_append_printf(string, "%s=%u", field->name, g_value_get_uint(&field->value)); + nm_str_buf_append_printf(&strbuf, + "%s=%u", + field->name, + g_value_get_uint(&field->value)); } else g_assert_not_reached(); } - return g_string_free(string, FALSE); + return nm_str_buf_finalize(&strbuf, NULL); } static void |