]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
nspawn-oci: add helper function for free_and_strdup with oom check
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 21 Mar 2019 09:54:24 +0000 (10:54 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 21 Mar 2019 10:08:58 +0000 (11:08 +0100)
src/basic/string-util.h
src/nspawn/nspawn-oci.c

index b0909dddca9b6a0e1dbf8e15a1eba292b2595f19..9cf11198b12d95e276201a2ddc9f8e892b4140fe 100644 (file)
@@ -180,6 +180,11 @@ char *strrep(const char *s, unsigned n);
 int split_pair(const char *s, const char *sep, char **l, char **r);
 
 int free_and_strdup(char **p, const char *s);
+static inline int free_and_strdup_warn(char **p, const char *s) {
+        if (free_and_strdup(p, s) < 0)
+                return log_oom();
+        return 0;
+}
 int free_and_strndup(char **p, const char *s, size_t l);
 
 char *string_erase(char *x);
index 12937961b9c4a32e8f9dc4fcc8ed8005319b6822..2193439a35a776a487a4904419d58499c86c6c3d 100644 (file)
@@ -124,7 +124,6 @@ static int oci_console_size(const char *name, JsonVariant *v, JsonDispatchFlags
 static int oci_absolute_path(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
         char **p = userdata;
         const char *n;
-        int r;
 
         assert(p);
 
@@ -134,11 +133,7 @@ static int oci_absolute_path(const char *name, JsonVariant *v, JsonDispatchFlags
                 return json_log(v, flags, SYNTHETIC_ERRNO(EINVAL),
                                 "Path in JSON field '%s' is not absolute: %s", strna(name), n);
 
-        r = free_and_strdup(p, n);
-        if (r < 0)
-                return log_oom();
-
-        return 0;
+        return free_and_strdup_warn(p, n);
 }
 
 static int oci_env(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
@@ -479,10 +474,7 @@ static int oci_hostname(const char *name, JsonVariant *v, JsonDispatchFlags flag
                 return json_log(v, flags, SYNTHETIC_ERRNO(EINVAL),
                                 "Hostname string is not a valid hostname: %s", n);
 
-        if (free_and_strdup(&s->hostname, n) < 0)
-                return log_oom();
-
-        return 0;
+        return free_and_strdup_warn(&s->hostname, n);
 }
 
 static bool oci_exclude_mount(const char *path) {