diff --git a/src/libnm-glib-aux/nm-secret-utils.h b/src/libnm-glib-aux/nm-secret-utils.h index 226d77ffd7..513dbca5bc 100644 --- a/src/libnm-glib-aux/nm-secret-utils.h +++ b/src/libnm-glib-aux/nm-secret-utils.h @@ -20,6 +20,22 @@ char *nm_secret_strchomp(char *secret); void nm_free_secret(char *secret); +static inline gboolean +nm_strdup_reset_secret(char **dst, const char *src) +{ + char *old; + + nm_assert(dst); + + if (nm_streq0(*dst, src)) + return FALSE; + old = *dst; + *dst = src ? g_strdup(src) : NULL; + if (old) + nm_free_secret(old); + return TRUE; +} + NM_AUTO_DEFINE_FCN0(char *, _nm_auto_free_secret, nm_free_secret); /** * nm_auto_free_secret: