mirror of
https://github.com/libexpat/libexpat.git
synced 2025-04-05 05:05:00 +00:00
lib: Make XML_StopParser refuse to stop/suspend an unstarted parser
This commit is contained in:
parent
b70c8f5e51
commit
51c7019069
2 changed files with 9 additions and 1 deletions
|
@ -130,7 +130,9 @@ enum XML_Error {
|
|||
/* Added in 2.3.0. */
|
||||
XML_ERROR_NO_BUFFER,
|
||||
/* Added in 2.4.0. */
|
||||
XML_ERROR_AMPLIFICATION_LIMIT_BREACH
|
||||
XML_ERROR_AMPLIFICATION_LIMIT_BREACH,
|
||||
/* Added in 2.6.4. */
|
||||
XML_ERROR_NOT_STARTED,
|
||||
};
|
||||
|
||||
enum XML_Content_Type {
|
||||
|
|
|
@ -2234,6 +2234,9 @@ XML_StopParser(XML_Parser parser, XML_Bool resumable) {
|
|||
if (parser == NULL)
|
||||
return XML_STATUS_ERROR;
|
||||
switch (parser->m_parsingStatus.parsing) {
|
||||
case XML_INITIALIZED:
|
||||
parser->m_errorCode = XML_ERROR_NOT_STARTED;
|
||||
return XML_STATUS_ERROR;
|
||||
case XML_SUSPENDED:
|
||||
if (resumable) {
|
||||
parser->m_errorCode = XML_ERROR_SUSPENDED;
|
||||
|
@ -2519,6 +2522,9 @@ XML_ErrorString(enum XML_Error code) {
|
|||
case XML_ERROR_AMPLIFICATION_LIMIT_BREACH:
|
||||
return XML_L(
|
||||
"limit on input amplification factor (from DTD and entities) breached");
|
||||
/* Added in 2.6.4. */
|
||||
case XML_ERROR_NOT_STARTED:
|
||||
return XML_L("parser not started");
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue