2418db
From 9e9df4b20d17478996780008bc9802a857d173fc Mon Sep 17 00:00:00 2001
2418db
From: Albert Astals Cid <aacid@kde.org>
2418db
Date: Thu, 8 Jan 2015 17:01:52 +0100
2418db
Subject: Fix crash on broken document
2418db
2418db
Bug #85281
2418db
2418db
diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
2418db
index 359c0d6..b439942 100644
2418db
--- a/poppler/GfxState.cc
2418db
+++ b/poppler/GfxState.cc
2418db
@@ -16,7 +16,7 @@
2418db
 // Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
2418db
 // Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
2418db
 // Copyright (C) 2006, 2010 Carlos Garcia Campos <carlosgc@gnome.org>
2418db
-// Copyright (C) 2006-2014 Albert Astals Cid <aacid@kde.org>
2418db
+// Copyright (C) 2006-2015 Albert Astals Cid <aacid@kde.org>
2418db
 // Copyright (C) 2009, 2012 Koji Otani <sho@bbr.jp>
2418db
 // Copyright (C) 2009, 2011-2013 Thomas Freitag <Thomas.Freitag@alfa.de>
2418db
 // Copyright (C) 2009 Christian Persch <chpe@gnome.org>
2418db
@@ -3048,8 +3048,12 @@ GfxColorSpace *GfxDeviceNColorSpace::copy() {
2418db
   int *mappingA = NULL;
2418db
 
2418db
   GooList *sepsCSA = new GooList(sepsCS->getLength());
2418db
-  for (i = 0; i < sepsCS->getLength(); i++)
2418db
-    sepsCSA->append(((GfxSeparationColorSpace *) sepsCS->get(i))->copy());
2418db
+  for (i = 0; i < sepsCS->getLength(); i++) {
2418db
+    GfxSeparationColorSpace *scs = (GfxSeparationColorSpace *) sepsCS->get(i);
2418db
+    if (scs != NULL) {
2418db
+      sepsCSA->append(scs->copy());
2418db
+    }
2418db
+  }
2418db
   if (mapping != NULL) {
2418db
     mappingA = (int *)gmalloc(sizeof(int) * nComps);
2418db
     for (i = 0; i < nComps; i++)
2418db
-- 
2418db
cgit v0.10.2
2418db