cssparser: Fix cases where we could overrun the terminating 0
This commit is contained in:
@ -875,16 +875,19 @@ _gtk_css_parser_resync_internal (GtkCssParser *parser,
|
|||||||
case '(':
|
case '(':
|
||||||
parser->data++;
|
parser->data++;
|
||||||
_gtk_css_parser_resync (parser, FALSE, ')');
|
_gtk_css_parser_resync (parser, FALSE, ')');
|
||||||
|
if (*parser->data)
|
||||||
parser->data++;
|
parser->data++;
|
||||||
break;
|
break;
|
||||||
case '[':
|
case '[':
|
||||||
parser->data++;
|
parser->data++;
|
||||||
_gtk_css_parser_resync (parser, FALSE, ']');
|
_gtk_css_parser_resync (parser, FALSE, ']');
|
||||||
|
if (*parser->data)
|
||||||
parser->data++;
|
parser->data++;
|
||||||
break;
|
break;
|
||||||
case '{':
|
case '{':
|
||||||
parser->data++;
|
parser->data++;
|
||||||
_gtk_css_parser_resync (parser, FALSE, '}');
|
_gtk_css_parser_resync (parser, FALSE, '}');
|
||||||
|
if (*parser->data)
|
||||||
parser->data++;
|
parser->data++;
|
||||||
if (sync_at_semicolon || !terminator)
|
if (sync_at_semicolon || !terminator)
|
||||||
{
|
{
|
||||||
@ -902,6 +905,8 @@ _gtk_css_parser_resync_internal (GtkCssParser *parser,
|
|||||||
}
|
}
|
||||||
parser->data++;
|
parser->data++;
|
||||||
continue;
|
continue;
|
||||||
|
case '\0':
|
||||||
|
break;
|
||||||
case '/':
|
case '/':
|
||||||
default:
|
default:
|
||||||
parser->data++;
|
parser->data++;
|
||||||
|
|||||||
Reference in New Issue
Block a user