summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Freitag <Thomas.Freitag@alfa.de>2012-09-09 12:48:26 +0200
committerAlbert Astals Cid <aacid@kde.org>2012-09-09 12:48:26 +0200
commit28240046f8fe37ca96f9a80cb1ea3a59af9c66f3 (patch)
treefa734bd21c0901d436e2d2e6e8687a8fc6f78524
parentccd3db5a7723ddb692f6dc85ed9d0f5e3dde189f (diff)
Fix crash in 589.pdf.SIGSEGV.8b1.929
-rw-r--r--poppler/Annot.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 24ef57d3..3e5cff66 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -25,6 +25,7 @@
// Copyright (C) 2009 Ilya Gorenbein <igorenbein@finjan.com>
// Copyright (C) 2011 José Aliste <jaliste@src.gnome.org>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
+// Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -4500,6 +4501,13 @@ void AnnotWidget::drawListBox(FormFieldChoice *fieldChoice,
wMax = 0;
for (i = 0; i < fieldChoice->getNumChoices(); ++i) {
j = 0;
+ if (fieldChoice->getChoice(i) == NULL) {
+ error(errSyntaxError, -1, "Invalid annotation listbox");
+ if (daToks) {
+ deleteGooList(daToks, GooString);
+ }
+ return;
+ }
layoutText(fieldChoice->getChoice(i), convertedText, &j, font, &w, 0.0, NULL, gFalse);
if (w > wMax) {
wMax = w;