mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Clamp the repeat numbers greater than 10000
This was causing a crash in gecko mochitest because of OOM.
This commit is contained in:
parent
1ab86a46b6
commit
3f10488da1
2 changed files with 6 additions and 2 deletions
|
@ -252,7 +252,6 @@
|
||||||
-> Result<(GridTemplateComponent,
|
-> Result<(GridTemplateComponent,
|
||||||
GridTemplateComponent,
|
GridTemplateComponent,
|
||||||
Either<TemplateAreas, None_>), ParseError<'i>> {
|
Either<TemplateAreas, None_>), ParseError<'i>> {
|
||||||
|
|
||||||
// Other shorthand sub properties also parse `none` and `subgrid` keywords and this
|
// Other shorthand sub properties also parse `none` and `subgrid` keywords and this
|
||||||
// shorthand should know after these keywords there is nothing to parse. Otherwise it
|
// shorthand should know after these keywords there is nothing to parse. Otherwise it
|
||||||
// gets confused and rejects the sub properties that contains `none` or `subgrid`.
|
// gets confused and rejects the sub properties that contains `none` or `subgrid`.
|
||||||
|
|
|
@ -354,8 +354,13 @@ pub enum RepeatCount {
|
||||||
|
|
||||||
impl Parse for RepeatCount {
|
impl Parse for RepeatCount {
|
||||||
fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>) -> Result<Self, ParseError<'i>> {
|
fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>) -> Result<Self, ParseError<'i>> {
|
||||||
if let Ok(i) = input.try(|i| Integer::parse(context, i)) {
|
// Maximum number of repeat is 10000. The greater numbers should be clamped.
|
||||||
|
const MAX_LINE: i32 = 10000;
|
||||||
|
if let Ok(mut i) = input.try(|i| Integer::parse(context, i)) {
|
||||||
if i.value() > 0 {
|
if i.value() > 0 {
|
||||||
|
if i.value() > MAX_LINE {
|
||||||
|
i = Integer::new(MAX_LINE);
|
||||||
|
}
|
||||||
Ok(RepeatCount::Number(i))
|
Ok(RepeatCount::Number(i))
|
||||||
} else {
|
} else {
|
||||||
Err(StyleParseError::UnspecifiedError.into())
|
Err(StyleParseError::UnspecifiedError.into())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue