From b4e7d6ed32c821ff51ddf4debe691ac06a3938ed Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Tue, 25 Dec 2012 15:13:44 -0500 Subject: Improve memory safety of finding PDF header --- libqpdf/QPDF.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libqpdf/QPDF.cc') diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index ba96cb64..777fb837 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -222,9 +222,11 @@ QPDF::parse(char const* password) this->provided_password = password; } - // Find the header anywhere in the first 1024 bytes of the file. - char buffer[1044]; - this->file->read(buffer, sizeof(buffer)); + // Find the header anywhere in the first 1024 bytes of the file, + // plus add a little extra space for the header itself. + char buffer[1045]; + memset(buffer, '\0', sizeof(buffer)); + this->file->read(buffer, sizeof(buffer) - 1); std::string line(buffer); PCRE::Match m1 = header_re.match(line.c_str()); if (m1) -- cgit v1.2.3-54-g00ecf