X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Futil.c;fp=src%2Fshared%2Futil.c;h=b885a46e439fb3a5a197007b4ff90690fa0c074e;hp=275fdece1e70de1d9534179a925d191f8fa1ae5c;hb=249a98a8ff9f9a3da30e977d347c14487088f738;hpb=eba20c2f8afe24a8bab713946a248b45dd2a80f1 diff --git a/src/shared/util.c b/src/shared/util.c index 275fdece1..b885a46e4 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5683,6 +5683,9 @@ int free_and_strdup(char **p, const char *s) { /* Replaces a string pointer with an strdup()ed new string, * possibly freeing the old one. */ + if (streq_ptr(*p, s)) + return 0; + if (s) { t = strdup(s); if (!t) @@ -5693,7 +5696,7 @@ int free_and_strdup(char **p, const char *s) { free(*p); *p = t; - return 0; + return 1; } int sethostname_idempotent(const char *s) {