| 3193 | } |
| 3194 | |
| 3195 | static enum XML_Error PTRCALL |
| 3196 | externalEntityInitProcessor2(XML_Parser parser, const char *start, |
| 3197 | const char *end, const char **endPtr) { |
| 3198 | const char *next = start; /* XmlContentTok doesn't always set the last arg */ |
| 3199 | int tok = XmlContentTok(parser->m_encoding, start, end, &next); |
| 3200 | switch (tok) { |
| 3201 | case XML_TOK_BOM: |
| 3202 | #if XML_GE == 1 |
| 3203 | if (! accountingDiffTolerated(parser, tok, start, next, __LINE__, |
| 3204 | XML_ACCOUNT_DIRECT)) { |
| 3205 | accountingOnAbort(parser); |
| 3206 | return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; |
| 3207 | } |
| 3208 | #endif /* XML_GE == 1 */ |
| 3209 | |
| 3210 | /* If we are at the end of the buffer, this would cause the next stage, |
| 3211 | i.e. externalEntityInitProcessor3, to pass control directly to |
| 3212 | doContent (by detecting XML_TOK_NONE) without processing any xml text |
| 3213 | declaration - causing the error XML_ERROR_MISPLACED_XML_PI in doContent. |
| 3214 | */ |
| 3215 | if (next == end && ! parser->m_parsingStatus.finalBuffer) { |
| 3216 | *endPtr = next; |
| 3217 | return XML_ERROR_NONE; |
| 3218 | } |
| 3219 | start = next; |
| 3220 | break; |
| 3221 | case XML_TOK_PARTIAL: |
| 3222 | if (! parser->m_parsingStatus.finalBuffer) { |
| 3223 | *endPtr = start; |
| 3224 | return XML_ERROR_NONE; |
| 3225 | } |
| 3226 | parser->m_eventPtr = start; |
| 3227 | return XML_ERROR_UNCLOSED_TOKEN; |
| 3228 | case XML_TOK_PARTIAL_CHAR: |
| 3229 | if (! parser->m_parsingStatus.finalBuffer) { |
| 3230 | *endPtr = start; |
| 3231 | return XML_ERROR_NONE; |
| 3232 | } |
| 3233 | parser->m_eventPtr = start; |
| 3234 | return XML_ERROR_PARTIAL_CHAR; |
| 3235 | } |
| 3236 | parser->m_processor = externalEntityInitProcessor3; |
| 3237 | return externalEntityInitProcessor3(parser, start, end, endPtr); |
| 3238 | } |
| 3239 | |
| 3240 | static enum XML_Error PTRCALL |
| 3241 | externalEntityInitProcessor3(XML_Parser parser, const char *start, |
no test coverage detected
searching dependent graphs…