From e47b742669e6aadcab8aaa16d123d8fa4832fe5d Mon Sep 17 00:00:00 2001 From: dmiller Date: Tue, 5 Dec 2023 21:47:33 +0000 Subject: [PATCH] Fix expr_match bug --- osscan.cc | 2 +- tests/expr_match_test.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/osscan.cc b/osscan.cc index 241ad17d8..05555101a 100644 --- a/osscan.cc +++ b/osscan.cc @@ -371,7 +371,7 @@ bool expr_match(const char *val, size_t vlen, const char *expr, size_t explen, b } goto next_expr; } else { - q1 = strchr_p(p, p_end, '-'); + q1 = strchr_p(p, q ? q : p_end, '-'); if (q1 != NULL) { size_t sublen1 = q1 - p; if ((vlen > sublen1) diff --git a/tests/expr_match_test.cc b/tests/expr_match_test.cc index 53e2d8d0d..2cc11d549 100644 --- a/tests/expr_match_test.cc +++ b/tests/expr_match_test.cc @@ -152,6 +152,7 @@ const struct expr_test tests[] = { {"M[500|5B4]ST11NW[7-9]", "M5B4ST11NW79", false}, {"M[500|5B4]ST11NW[7-9]", "M500ST11NWA", false}, {"M[500|5B4]ST11NW[7-9]", "M5B40ST11NW9", false}, + {"A|20-22", "A", true}, {"", "", true} };