summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/shared/path-lookup.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
index 80a2ea7940..ca593b6963 100644
--- a/src/shared/path-lookup.c
+++ b/src/shared/path-lookup.c
@@ -586,9 +586,16 @@ int lookup_paths_init(
if (!add)
return -ENOMEM;
- r = strv_extend_strv(&paths, add, true);
- if (r < 0)
+ if (paths) {
+ r = strv_extend_strv(&paths, add, true);
+ if (r < 0)
return r;
+ } else {
+ /* Small optimization: if paths is NULL (and it usually is), we can simply assign 'add' to it,
+ * and don't have to copy anything */
+ paths = add;
+ add = NULL;
+ }
}
r = patch_root_prefix(&persistent_config, root);