diff --git a/src/parse/mq.c b/src/parse/mq.c index 5031e34..94fc90a 100644 --- a/src/parse/mq.c +++ b/src/parse/mq.c @@ -980,7 +980,7 @@ static css_error mq_parse_media_query(lwc_string **strings, token = parserutils_vector_peek(vector, *ctx); if (tokenIsChar(token, '(')) { is_condition = true; - } else if (token->type == CSS_TOKEN_IDENT && + } else if (token != NULL && token->type == CSS_TOKEN_IDENT && lwc_string_caseless_isequal(token->idata, strings[NOT], &match) == lwc_error_ok && match) { diff --git a/test/data/parse2/mq.dat b/test/data/parse2/mq.dat index 5119d35..e7ff169 100644 --- a/test/data/parse2/mq.dat +++ b/test/data/parse2/mq.dat @@ -81,3 +81,26 @@ #expected | @media 3ff #reset + +## A media list with trailing comma crashed css__mq_parse_media_list() loop + +#data +@media), +#errors +#expected +| @media not 3ff +#reset + +#data +@media ),,, +#errors +#expected +| @media not 3ff +#reset + +#data +@media (color), +#errors +#expected +| @media 3ff +#reset