diff options
author | Albert Astals Cid <aacid@kde.org> | 2012-04-29 22:07:34 +0200 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2012-04-29 22:07:34 +0200 |
commit | 931051fe0bb445545355027d999515bc3d4b32ef (patch) | |
tree | 48e0a299eeac211d01b75c8083c1362b444f5a7b | |
parent | 53b9c2e2806320d0d0e35134b75da5da72514742 (diff) |
Make sure the index for refLine is in bounds
Found in a fuzzed pdf sent by Mateusz "j00ru" Jurczyk and Gynvael Coldwind
-rw-r--r-- | poppler/Stream.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/poppler/Stream.cc b/poppler/Stream.cc index 8bb12bdc..423bf1c9 100644 --- a/poppler/Stream.cc +++ b/poppler/Stream.cc @@ -14,7 +14,7 @@ // under GPL version 2 or later // // Copyright (C) 2005 Jeff Muizelaar <jeff@infidigm.net> -// Copyright (C) 2006-2010 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2006-2010, 2012 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2007 Krzysztof Kowalczyk <kkowalczyk@gmail.com> // Copyright (C) 2008 Julien Rebetez <julien@fhtagn.net> // Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> @@ -1727,9 +1727,11 @@ int CCITTFaxStream::lookChar() { code1 = getTwoDimCode(); switch (code1) { case twoDimPass: - addPixels(refLine[b1i + 1], blackPixels); - if (refLine[b1i + 1] < columns) { - b1i += 2; + if (likely(b1i + 1 < columns + 2)) { + addPixels(refLine[b1i + 1], blackPixels); + if (refLine[b1i + 1] < columns) { + b1i += 2; + } } break; case twoDimHoriz: |