From 68e0819c1ad2475e822825e8510a7bd9d0420d61 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Mon, 5 May 2014 13:03:47 +0200 Subject: Fix 695098: don't use atoi() on non-zero-terminated buffer. --- source/pdf/pdf-xref.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c index 9bf735da..134d72cc 100644 --- a/source/pdf/pdf-xref.c +++ b/source/pdf/pdf-xref.c @@ -323,9 +323,11 @@ pdf_read_start_xref(pdf_document *doc) if (memcmp(buf + i, "startxref", 9) == 0) { i += 9; - while (iswhite(buf[i]) && i < n) + while (i < n && iswhite(buf[i])) i ++; - doc->startxref = atoi((char*)(buf + i)); + doc->startxref = 0; + while (i < n && buf[i] >= '0' && buf[i] <= '9') + doc->startxref = doc->startxref * 10 + (buf[i++] - '0'); if (doc->startxref != 0) return; break; -- cgit v1.2.3