summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-10-05 09:30:48 +0000
committerFelix Fietkau2025-10-05 09:31:31 +0000
commita64db95a23dfabc40e429efa928d4c2cec75874f (patch)
treefbc3caff9f7cc70d9da318f56c02de2762ffb3e5
parent7b2c9f6799fd9b876e8e1440d3ff0d650c41a965 (diff)
downloadopenwrt-a64db95a23dfabc40e429efa928d4c2cec75874f.tar.gz
ucode: fix parsing \xHH and \0OOO escape sequences
Both need to add add bytes, not UTF-8 sequences. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/utils/ucode/patches/100-lexer-fix-parsing-xHH-and-0OOO-escape-sequences.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/utils/ucode/patches/100-lexer-fix-parsing-xHH-and-0OOO-escape-sequences.patch b/package/utils/ucode/patches/100-lexer-fix-parsing-xHH-and-0OOO-escape-sequences.patch
new file mode 100644
index 0000000000..70845259f7
--- /dev/null
+++ b/package/utils/ucode/patches/100-lexer-fix-parsing-xHH-and-0OOO-escape-sequences.patch
@@ -0,0 +1,29 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sun, 5 Oct 2025 11:25:15 +0200
+Subject: [PATCH] lexer: fix parsing \xHH and \0OOO escape sequences
+
+Both need to add add bytes, not UTF-8 sequences.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/lexer.c
++++ b/lexer.c
+@@ -277,7 +277,7 @@ parse_escape(uc_lexer_t *lex, const char
+ code = code * 16 + hex(ch);
+ }
+
+- append_utf8(lex, code);
++ uc_vector_push(&lex->buffer, code);
+ }
+
+ /* octal or letter */
+@@ -293,7 +293,7 @@ parse_escape(uc_lexer_t *lex, const char
+ if (code > 255)
+ return emit_op(lex, -3, TK_ERROR, ucv_string_new("Invalid escape sequence"));
+
+- append_utf8(lex, code);
++ uc_vector_push(&lex->buffer, code);
+ }
+
+ /* ... no octal sequence, handle potential regex macros */