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:
heikki%netscape.com 2001-01-04 23:03:32 +00:00
parent edf2a98b13
commit 587a668271
2 changed files with 10 additions and 4 deletions

View File

@ -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:

View File

@ -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: