summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/css.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/css/css.c b/css/css.c
index d5083a30f..d881a8ed2 100644
--- a/css/css.c
+++ b/css/css.c
@@ -1386,10 +1386,13 @@ bool css_match_detail(const struct css_selector *detail,
free(word);
if (!s)
break;
- word = s + (strlen(s) - detail->data2_length);
- if (s && strncasecmp(detail->data2, word,
- detail->data2_length) == 0)
- match = true;
+ length = strlen(s);
+ if (detail->data2_length <= length) {
+ word = s + (length - detail->data2_length);
+ if (s && strncasecmp(detail->data2, word,
+ detail->data2_length) == 0)
+ match = true;
+ }
break;
case CSS_SELECTOR_ATTRIB_SUB: