X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fstrv.c;fp=src%2Fshared%2Fstrv.c;h=67706dc381dfde9ecbd2fcd299d8a076cdb3b588;hp=13deba7be7780a7978d52d22b5e998a427af15f5;hb=6e18964d3a365567954fe10ddcfad74babdc427c;hpb=e062dec5ae1a443d47885537af85d328c83c67db diff --git a/src/shared/strv.c b/src/shared/strv.c index 13deba7be..67706dc38 100644 --- a/src/shared/strv.c +++ b/src/shared/strv.c @@ -378,9 +378,18 @@ int strv_push(char ***l, char *value) { return 0; } +int strv_consume(char ***l, char *value) { + int r; + + r = strv_push(l, value); + if (r < 0) + free(value); + + return r; +} + int strv_extend(char ***l, const char *value) { char *v; - int r; if (!value) return 0; @@ -389,11 +398,7 @@ int strv_extend(char ***l, const char *value) { if (!v) return -ENOMEM; - r = strv_push(l, v); - if (r < 0) - free(v); - - return r; + return strv_consume(l, v); } char **strv_uniq(char **l) {