[gs-cvs] rev 9068 - trunk/gs/base

ken at ghostscript.com ken at ghostscript.com
Thu Sep 4 03:04:10 PDT 2008


Author: ken
Date: 2008-09-04 03:04:10 -0700 (Thu, 04 Sep 2008)
New Revision: 9068

Modified:
   trunk/gs/base/gdevpdfu.c
Log:
A couple of issues detected by Coverity. Firstly an error condition could lead to a file being
left open. Secondly a call to pdf_restore_viewer_state which didn't check the return value.

Expected Differences:
None.


Modified: trunk/gs/base/gdevpdfu.c
===================================================================
--- trunk/gs/base/gdevpdfu.c	2008-09-04 10:02:04 UTC (rev 9067)
+++ trunk/gs/base/gdevpdfu.c	2008-09-04 10:04:10 UTC (rev 9068)
@@ -181,6 +181,7 @@
 		l = strlen(buf);
 		m = sizeof(buf) - 1 - l;
 		if (!m) {
+		    fclose(f);
 		    eprintf1("The procset %s contains a too long line.", fname);
 		    return_error(gs_error_ioerror);
 		}
@@ -662,6 +663,7 @@
 {
     stream *s = pdev->strm;
     long length;
+    int code;
 
     if (pdev->ResourcesBeforeUsage) {
 	int code = pdf_exit_substream(pdev);
@@ -669,8 +671,11 @@
 	if (code < 0)
 	    return code;
     } else {
-	if (pdev->vgstack_depth)
-	    pdf_restore_viewer_state(pdev, s);
+	if (pdev->vgstack_depth) {
+	    code = pdf_restore_viewer_state(pdev, s);
+	    if (code < 0)
+		return code;
+	}
 	if (pdev->compression_at_page_start == pdf_compress_Flate) {	/* Terminate the filters. */
 	    stream *fs = s->strm;
 



More information about the gs-cvs mailing list