-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <sys/mman.h>
+#include <fcntl.h>
#include "alloc-util.h"
#include "env-util.h"
#include "escape.h"
#include "fileio.h"
+#include "missing_mman.h"
+#include "missing_syscall.h"
#include "parse-util.h"
#include "process-util.h"
#include "serialize.h"
int serialize_strv(FILE *f, const char *key, char **l) {
int ret = 0, r;
- char **i;
/* Returns the first error, or positive if anything was serialized, 0 otherwise. */
int deserialize_environment(const char *value, char ***list) {
_cleanup_free_ char *unescaped = NULL;
+ ssize_t l;
int r;
assert(value);
/* Changes the *environment strv inline. */
- r = cunescape(value, 0, &unescaped);
- if (r < 0)
- return log_error_errno(r, "Failed to unescape: %m");
+ l = cunescape(value, 0, &unescaped);
+ if (l < 0)
+ return log_error_errno(l, "Failed to unescape: %m");
- r = strv_env_replace(list, unescaped);
+ r = strv_env_replace_consume(list, TAKE_PTR(unescaped));
if (r < 0)
return log_error_errno(r, "Failed to append environment variable: %m");
- unescaped = NULL; /* now part of 'list' */
return 0;
}