nspawn-oci: add helper function for free_and_strdup with oom check
This commit is contained in:
@@ -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
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user