From cc84c3d7916640b75ca4dc0785f9b1f417df1664 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 19 Jul 2021 19:57:59 -0700 Subject: Made escape sequence handling stricter: no longer supporting arbitrary characters, only special escapes like \n, hex sequences like \x0a, octal sequences like \012, and backslashes \\ --- pattern.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'pattern.c') diff --git a/pattern.c b/pattern.c index 91b9351..32b1376 100644 --- a/pattern.c +++ b/pattern.c @@ -306,9 +306,11 @@ static pat_t *_bp_simplepattern(file_t *f, const char *str) const char *opstart = str; unsigned char e = (unsigned char)unescapechar(str, &str); + if (str == opstart) + file_err(f, start, str, "This isn't a valid escape sequence."); if (matchchar(&str, '-')) { // Escape range (e.g. \x00-\xFF) if (next_char(f, str) != str+1) - file_err(f, start, next_char(f, str), "Sorry, UTF8 escape sequences are not supported."); + file_err(f, start, next_char(f, str), "Sorry, UTF8 escape sequences are not supported in ranges."); const char *seqstart = str; unsigned char e2 = (unsigned char)unescapechar(str, &str); if (str == seqstart) -- cgit v1.2.3