From 1cdb888575c6fc53fabe3575534ba99e3bb2c153 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Mon, 2 Jan 2017 00:53:20 +0100 Subject: xplist: Error out when invalid tags inside text nodes are encountered --- src/xplist.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/xplist.c') 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 } ctx->pos += 3; } else { - PLIST_XML_ERR("Invalid special tag <[%.6s encountered\n", ctx->pos); + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid special tag '<[%.*s>' encountered inside '<%s>' tag\n", (int)(ctx->pos - p), p, tag); ctx->err++; return NULL; } + } else { + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid special tag '' encountered inside '<%s>' tag\n", (int)(ctx->pos - p), p, tag); + ctx->err++; + return NULL; } } else if (*ctx->pos == '/') { break; } else { - PLIST_XML_ERR("Invalid tag %.10s inside %s tag\n", ctx->pos, tag); + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid tag '<%.*s>' encountered inside '<%s>' tag\n", (int)(ctx->pos - p), p, tag); ctx->err++; return NULL; } -- cgit v1.1-32-gdbae