Sophie

Sophie

distrib > * > 2008.0 > x86_64 > media > main-updates-src > by-pkgid > 8b86a2f6f719441b57e3803d48d60be8 > files > 2

poppler-0.6-3.4mdv2008.0.src.rpm

Index: poppler/CairoFontEngine.cc
===================================================================
RCS file: /cvs/poppler/poppler/poppler/CairoFontEngine.cc,v
retrieving revision 1.23
diff -u -r1.23 CairoFontEngine.cc
--- poppler/CairoFontEngine.cc	29 May 2006 18:44:17 -0000	1.23
+++ poppler/CairoFontEngine.cc	19 Aug 2006 20:26:15 -0000
@@ -79,6 +79,13 @@
     refObj.initRef(embRef.num, embRef.gen);
     refObj.fetch(xref, &strObj);
     refObj.free();
+
+    if(!strObj.isStream()) {
+      strObj.free();
+      error(-1, "Not a stream (%s)!\n", strObj.getTypeName());
+      goto err2;
+    }
+
     strObj.streamReset();
     while ((c = strObj.streamGetChar()) != EOF) {
       fputc(c, tmpFile);
Index: poppler/GfxFont.cc
===================================================================
RCS file: /cvs/poppler/poppler/poppler/GfxFont.cc,v
retrieving revision 1.9
diff -u -r1.9 GfxFont.cc
--- poppler/GfxFont.cc	2 May 2006 04:38:39 -0000	1.9
+++ poppler/GfxFont.cc	19 Aug 2006 20:26:15 -0000
@@ -1615,8 +1615,11 @@
 				   r, obj2.getDict());
       delete[] aux;
       if (fonts[i] && !fonts[i]->isOk()) {
 	delete fonts[i];
 	fonts[i] = NULL;
+      }
+      if (fonts[i]) {
+	fonts[i]->incRefCnt();
       }
     } else {
       error(-1, "font resource is not a dictionary");