mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 34168, report error instead of crashing if we encounter a parameter entity containing double percent sign. Fix from James Clark. r=nisheeth, a=vidur.
This commit is contained in:
parent
edf2a98b13
commit
587a668271
@ -1270,8 +1270,11 @@ int PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, const char *end
|
|||||||
*nextTokPtr = ptr;
|
*nextTokPtr = ptr;
|
||||||
return XML_TOK_DATA_CHARS;
|
return XML_TOK_DATA_CHARS;
|
||||||
case BT_PERCNT:
|
case BT_PERCNT:
|
||||||
if (ptr == start)
|
if (ptr == start) {
|
||||||
return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr);
|
int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc),
|
||||||
|
end, nextTokPtr);
|
||||||
|
return (tok == XML_TOK_PERCENT) ? XML_TOK_INVALID : tok;
|
||||||
|
}
|
||||||
*nextTokPtr = ptr;
|
*nextTokPtr = ptr;
|
||||||
return XML_TOK_DATA_CHARS;
|
return XML_TOK_DATA_CHARS;
|
||||||
case BT_LF:
|
case BT_LF:
|
||||||
|
@ -1270,8 +1270,11 @@ int PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, const char *end
|
|||||||
*nextTokPtr = ptr;
|
*nextTokPtr = ptr;
|
||||||
return XML_TOK_DATA_CHARS;
|
return XML_TOK_DATA_CHARS;
|
||||||
case BT_PERCNT:
|
case BT_PERCNT:
|
||||||
if (ptr == start)
|
if (ptr == start) {
|
||||||
return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr);
|
int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc),
|
||||||
|
end, nextTokPtr);
|
||||||
|
return (tok == XML_TOK_PERCENT) ? XML_TOK_INVALID : tok;
|
||||||
|
}
|
||||||
*nextTokPtr = ptr;
|
*nextTokPtr = ptr;
|
||||||
return XML_TOK_DATA_CHARS;
|
return XML_TOK_DATA_CHARS;
|
||||||
case BT_LF:
|
case BT_LF:
|
||||||
|
Loading…
Reference in New Issue
Block a user