From 3378ec12362d21af1471f70fb43d62ca7466a341 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sun, 2 Jan 2022 14:57:51 +0100 Subject: [PATCH] glib-aux: add nm_strdup_reset_secret() helper --- src/libnm-glib-aux/nm-secret-utils.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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: