diff options
author | Nikias Bassen | 2017-02-07 02:37:59 +0100 |
---|---|---|
committer | Nikias Bassen | 2017-02-07 02:37:59 +0100 |
commit | ca33a2b7aebf7cadd480a80d1eb2284406061b08 (patch) | |
tree | 2c83f90028f5dac0ced7881347c9718135aaafd4 /src/xplist.c | |
parent | 8c5eae9847edc1e65ba70bb76e042bccfee555c4 (diff) | |
download | libplist-ca33a2b7aebf7cadd480a80d1eb2284406061b08.tar.gz libplist-ca33a2b7aebf7cadd480a80d1eb2284406061b08.tar.bz2 |
xplist: Fix OOB read when parsing double quotes
Diffstat (limited to 'src/xplist.c')
-rw-r--r-- | src/xplist.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/xplist.c b/src/xplist.c index f73b12d..7cee6de 100644 --- a/src/xplist.c +++ b/src/xplist.c @@ -469,6 +469,10 @@ static void find_next(parse_ctx ctx, const char *nextchars, int numchars, int sk if (skip_quotes && (*(ctx->pos) == '"')) { ctx->pos++; find_char(ctx, '"', 0); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while looking for matching double quote\n"); + return; + } if (*(ctx->pos) != '"') { PLIST_XML_ERR("Unmatched double quote\n"); return; |