diff --git a/src/core/supplicant/nm-supplicant-config.c b/src/core/supplicant/nm-supplicant-config.c index 707ad98100..8a28c34a9d 100644 --- a/src/core/supplicant/nm-supplicant-config.c +++ b/src/core/supplicant/nm-supplicant-config.c @@ -153,16 +153,16 @@ nm_supplicant_config_add_option_with_type(NMSupplicantConfig *self, return FALSE; } - opt = g_slice_new0(ConfigOption); - opt->value = g_malloc(len + 1); - memcpy(opt->value, value, len); - opt->value[len] = '\0'; - - opt->len = len; - opt->type = type; + opt = g_slice_new(ConfigOption); + *opt = (ConfigOption){ + .value = nm_memdup_nul(value, len), + .len = len, + .type = type, + }; { char buf[255]; + memset(&buf[0], 0, sizeof(buf)); memcpy(&buf[0], opt->value, opt->len > 254 ? 254 : opt->len); nm_log_info(LOGD_SUPPLICANT, diff --git a/src/libnm-glib-aux/nm-ref-string.c b/src/libnm-glib-aux/nm-ref-string.c index fec5d60e4d..27a6c93816 100644 --- a/src/libnm-glib-aux/nm-ref-string.c +++ b/src/libnm-glib-aux/nm-ref-string.c @@ -157,8 +157,7 @@ nm_ref_string_new_len(const char *cstr, gsize len) g_atomic_int_inc(&rstr->_ref_count); } else { rstr = g_malloc((G_STRUCT_OFFSET(NMRefString, str) + 1u) + len); - if (len > 0) - memcpy((char *) rstr->str, cstr, len); + nm_memcpy((char *) rstr->str, cstr, len); ((char *) rstr->str)[len] = '\0'; *((gsize *) &rstr->len) = len; rstr->_ref_count = 1; diff --git a/src/libnm-glib-aux/nm-str-buf.h b/src/libnm-glib-aux/nm-str-buf.h index e8b51208a9..162cc52ca7 100644 --- a/src/libnm-glib-aux/nm-str-buf.h +++ b/src/libnm-glib-aux/nm-str-buf.h @@ -530,10 +530,7 @@ nm_str_buf_finalize(NMStrBuf *strbuf, gsize *out_len) char *str = g_steal_pointer(&strbuf->_priv_str); char *result; - result = g_new(char, strbuf->_priv_len + 1u); - memcpy(result, str, strbuf->_priv_len); - result[strbuf->_priv_len] = '\0'; - + result = nm_memdup_nul(str, strbuf->_priv_len); if (strbuf->_priv_do_bzero_mem) nm_explicit_bzero(str, strbuf->_priv_len); return result;