ref: c60f221f9cf9d14ae7a79cfa57d6ee62d78f5ac6
parent: 8fe167486bc187b6319054be3b125e14d0e0a416
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Mar 27 16:57:22 EDT 2023
disallow invalid escape sequences (modified patch from Julia)
--- a/read.c
+++ b/read.c
@@ -552,7 +552,12 @@
i += u8_wc_toutf8(&buf[i], wc);
}
else {
- buf[i++] = read_escape_control_char((char)c);
+ char esc = read_escape_control_char((char)c);
+ if (esc == (char)c && !strchr("\\'\"`", esc)) {
+ free(buf);
+ lerrorf(ParseError, "read: invalid escape sequence: \\%c", (char)c);
+ }
+ buf[i++] = esc;
}
}
else {