Skip to content

Commit c7d797b

Browse files
committed
basic/env-util: don't relax unesaping of serialized environment strings
We wrote them ourselves -- they shouldn't contain invalid sequences.
1 parent ea43bdd commit c7d797b

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/basic/env-util.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,7 @@ int deserialize_environment(char ***environment, const char *line) {
805805
assert(environment);
806806

807807
assert(startswith(line, "env="));
808-
r = cunescape(line + 4, UNESCAPE_RELAX, &uce);
808+
r = cunescape(line + 4, 0, &uce);
809809
if (r < 0)
810810
return r;
811811

src/test/test-env-util.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,9 @@ static void test_deserialize_environment(void) {
323323
assert_se(deserialize_environment(&env, "env=FOO%%=a\\177b\\nc\\td e") >= 0);
324324

325325
assert_se(strv_equal(env, STRV_MAKE("A=1", "B=2", "FOO%%=a\177b\nc\td e")));
326+
327+
assert_se(deserialize_environment(&env, "env=foo\\") < 0);
328+
assert_se(deserialize_environment(&env, "env=bar\\_baz") < 0);
326329
}
327330

328331
static void test_serialize_environment(void) {

0 commit comments

Comments
 (0)