nspawn-oci: add helper function for free_and_strdup with oom check

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2019-03-21 11:08:58 +01:00
parent 19130626a0
commit f1531db5af
2 changed files with 7 additions and 10 deletions
+5
View 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);
+2 -10
View 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) {