basic/env-uil: fix assertion failure in strv_env_replace (#4688)
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 17 Nov 2016 21:25:01 +0000 (16:25 -0500)
committerMartin Pitt <martin.pitt@ubuntu.com>
Thu, 17 Nov 2016 21:25:01 +0000 (22:25 +0100)
free_and_replace sets the setcond argument to NULL (it's designed
to be used with _clenaup_ macros), and we don't want that here.

Fixes #4684.

src/basic/env-util.c

index 7c69ccd..96da38d 100644 (file)
@@ -395,7 +395,8 @@ int strv_env_replace(char ***l, char *p) {
 
         for (f = *l; f && *f; f++)
                 if (env_match(*f, p)) {
-                        free_and_replace(*f, p);
+                        free(*f);
+                        *f = p;
                         strv_env_unset(f + 1, p);
                         return 0;
                 }