[gs-cvs] rev 8050 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Wed Jun 13 16:21:11 PDT 2007


Author: leonardo
Date: 2007-06-13 16:21:11 -0700 (Wed, 13 Jun 2007)
New Revision: 8050

Modified:
   trunk/gs/src/gdevpdfu.c
Log:
Fix (pdfwrite) : A crash when comparing resources of different types.

DETAILS :

pdf_find_same_resource assumed same resource type.
However PDF allows for functions to be either array or dictionary.
Need to compare resource types before comparing their contents.

EXPECTED DIFFERENCES :

None.


Modified: trunk/gs/src/gdevpdfu.c
===================================================================
--- trunk/gs/src/gdevpdfu.c	2007-06-13 19:21:47 UTC (rev 8049)
+++ trunk/gs/src/gdevpdfu.c	2007-06-13 23:21:11 UTC (rev 8050)
@@ -877,9 +877,12 @@
     for (i = 0; i < NUM_RESOURCE_CHAINS; i++) {
 	for (pres = pchain[i]; pres != 0; pres = pres->next) {
 	    if (*ppres != pres) {
+		int code;
 		cos_object_t *pco1 = pres->object;
-		int code = pco0->cos_procs->equal(pco0, pco1, pdev);
 
+		if (cos_type(pco0) != cos_type(pco1))
+		    continue;	    /* don't compare different types */
+		code = pco0->cos_procs->equal(pco0, pco1, pdev);
 		if (code < 0)
 		    return code;
 		if (code > 0) {



More information about the gs-cvs mailing list