summaryrefslogtreecommitdiffstats
path: root/src/xplist.c
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2017-02-07 02:37:59 +0100
committerGravatar Nikias Bassen2017-02-07 02:37:59 +0100
commitca33a2b7aebf7cadd480a80d1eb2284406061b08 (patch)
tree2c83f90028f5dac0ced7881347c9718135aaafd4 /src/xplist.c
parent8c5eae9847edc1e65ba70bb76e042bccfee555c4 (diff)
downloadlibplist-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.c4
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;