]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-path,strv: add simple helper to wrap oom handling around strv_split_nulstr()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 24 Mar 2020 10:28:25 +0000 (11:28 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 27 Mar 2020 19:12:44 +0000 (20:12 +0100)
src/basic/strv.h
src/libsystemd/sd-path/sd-path.c

index e7c2b1a604fc36835f7a13353f746a3794aa0043..dd3323c2235ab2fc64240a213effc5360cc628f6 100644 (file)
@@ -87,6 +87,16 @@ char **strv_parse_nulstr(const char *s, size_t l);
 char **strv_split_nulstr(const char *s);
 int strv_make_nulstr(char * const *l, char **p, size_t *n);
 
+static inline int strv_from_nulstr(char ***a, const char *nulstr) {
+        char **t;
+
+        t = strv_split_nulstr(nulstr);
+        if (!t)
+                return -ENOMEM;
+        *a = t;
+        return 0;
+}
+
 bool strv_overlap(char * const *a, char * const *b) _pure_;
 
 #define STRV_FOREACH(s, l)                      \
index 5797f55c75a92d7c6dea24ea27f3851aaa447145..eed8229f5b83911723df4f025f9f2c07d984deb6 100644 (file)
@@ -536,16 +536,11 @@ static int get_search(uint64_t type, char ***list) {
                                                "/etc",
                                                NULL);
 
-        case SD_PATH_SEARCH_BINARIES_DEFAULT: {
-                char **t;
+        case SD_PATH_SEARCH_BINARIES_DEFAULT:
+                return strv_from_nulstr(list, DEFAULT_PATH_NULSTR);
 
-                t = strv_split_nulstr(DEFAULT_PATH_NULSTR);
-                if (!t)
-                        return -ENOMEM;
 
-                *list = t;
-                return 0;
-        }}
+        }
 
         return -EOPNOTSUPP;
 }