diff options
Diffstat (limited to 'src/xplist.c')
| -rw-r--r-- | src/xplist.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/xplist.c b/src/xplist.c index a7d0722..ff065a9 100644 --- a/src/xplist.c +++ b/src/xplist.c | |||
| @@ -587,15 +587,25 @@ static text_part_t* get_text_parts(parse_ctx ctx, const char* tag, size_t tag_le | |||
| 587 | } | 587 | } |
| 588 | ctx->pos += 3; | 588 | ctx->pos += 3; |
| 589 | } else { | 589 | } else { |
| 590 | PLIST_XML_ERR("Invalid special tag <[%.6s encountered\n", ctx->pos); | 590 | p = ctx->pos; |
| 591 | find_next(ctx, " \r\n\t>", 5, 1); | ||
| 592 | PLIST_XML_ERR("Invalid special tag '<[%.*s>' encountered inside '<%s>' tag\n", (int)(ctx->pos - p), p, tag); | ||
| 591 | ctx->err++; | 593 | ctx->err++; |
| 592 | return NULL; | 594 | return NULL; |
| 593 | } | 595 | } |
| 596 | } else { | ||
| 597 | p = ctx->pos; | ||
| 598 | find_next(ctx, " \r\n\t>", 5, 1); | ||
| 599 | PLIST_XML_ERR("Invalid special tag '<!%.*s>' encountered inside '<%s>' tag\n", (int)(ctx->pos - p), p, tag); | ||
| 600 | ctx->err++; | ||
| 601 | return NULL; | ||
| 594 | } | 602 | } |
| 595 | } else if (*ctx->pos == '/') { | 603 | } else if (*ctx->pos == '/') { |
| 596 | break; | 604 | break; |
| 597 | } else { | 605 | } else { |
| 598 | PLIST_XML_ERR("Invalid tag %.10s inside %s tag\n", ctx->pos, tag); | 606 | p = ctx->pos; |
| 607 | find_next(ctx, " \r\n\t>", 5, 1); | ||
| 608 | PLIST_XML_ERR("Invalid tag '<%.*s>' encountered inside '<%s>' tag\n", (int)(ctx->pos - p), p, tag); | ||
| 599 | ctx->err++; | 609 | ctx->err++; |
| 600 | return NULL; | 610 | return NULL; |
| 601 | } | 611 | } |
