Blob Blame History Raw
diff -dur cudd-2.4.1.ORIG/dddmp/dddmpDbg.c cudd-2.4.1/dddmp/dddmpDbg.c
--- cudd-2.4.1.ORIG/dddmp/dddmpDbg.c	2004-02-18 09:23:31.000000000 -0700
+++ cudd-2.4.1/dddmp/dddmpDbg.c	2006-02-20 16:05:04.000000000 -0700
@@ -97,7 +97,8 @@
   while (fgets(buf, 999,fp)!=NULL) {
     fprintf (fpo, "%s", buf);
     if (strncmp(buf, ".nnodes", 7) == 0) {
-      sscanf (buf, "%*s %d", &nnodes);
+      if (sscanf (buf, "%*s %d", &nnodes) == EOF)
+	break;
     }
     if (strncmp(buf, ".rootids", 8) == 0) {
       break;
@@ -141,7 +142,8 @@
 
   }
 
-  fgets(buf, 999,fp);
+  if (fgets(buf, 999,fp) == NULL)
+    buf[0] = '\0';
   if (strncmp(buf, ".end", 4) != 0) {
     return (0);
   }
diff -dur cudd-2.4.1.ORIG/dddmp/dddmpLoad.c cudd-2.4.1/dddmp/dddmpLoad.c
--- cudd-2.4.1.ORIG/dddmp/dddmpLoad.c	2004-02-18 09:24:00.000000000 -0700
+++ cudd-2.4.1/dddmp/dddmpLoad.c	2006-02-20 16:02:11.000000000 -0700
@@ -1109,7 +1109,8 @@
 
   /*------------------------ Deal With the File Tail -----------------------*/
 
-  fgets (buf, DDDMP_MAXSTRLEN-1,fp);
+  if (fgets (buf, DDDMP_MAXSTRLEN-1,fp) == NULL)
+    buf[0] = '\0';
   Dddmp_CheckAndGotoLabel (!matchkeywd(buf, ".end"),
     "Error .end not found.", failure);
 
@@ -1273,7 +1274,8 @@
 
     /* comment */
     if (buf[0] == '#') {
-      fgets(buf,DDDMP_MAXSTRLEN,fp);
+      if (fgets(buf,DDDMP_MAXSTRLEN,fp) == NULL)
+	buf[0] = '\0';
       continue;
     }
 
@@ -1424,7 +1426,8 @@
     }
 
     if (matchkeywd(buf, ".nodes")) {
-      fgets(buf,DDDMP_MAXSTRLEN,fp);
+      if (fgets(buf,DDDMP_MAXSTRLEN,fp) == NULL)
+	buf[0] = '\0';
       break;
     }
 
diff -dur cudd-2.4.1.ORIG/dddmp/dddmpLoadCnf.c cudd-2.4.1/dddmp/dddmpLoadCnf.c
--- cudd-2.4.1.ORIG/dddmp/dddmpLoadCnf.c	2004-02-20 01:35:56.000000000 -0700
+++ cudd-2.4.1/dddmp/dddmpLoadCnf.c	2006-02-20 16:04:02.000000000 -0700
@@ -554,7 +554,8 @@
 
     /* Init Problem Line */ 
     if (buf[0] == 'p') {
-      fscanf (fp, "%*s %d %d", &nv, &nc);
+      if (fscanf (fp, "%*s %d %d", &nv, &nc) == EOF)
+	break;
       Hdr->nVarsCnf = nv;
       Hdr->nClausesCnf = nc;
       break;
@@ -569,7 +570,8 @@
 
     /* Skip Comment? */
     if (buf[0] != '.') {
-      fgets (buf, DDDMP_MAXSTRLEN, fp);
+      if (fgets (buf, DDDMP_MAXSTRLEN, fp) == NULL)
+	buf[0] = '\0';
       continue;
     }
 
@@ -811,7 +813,8 @@
     /* Check for Comment */
     if (word[0] == 'c') {
       /* Comment Found: Skip line */
-      fgets (word, DDDMP_MAX_CNF_ROW_LENGTH-1, fp);
+      if (fgets (word, DDDMP_MAX_CNF_ROW_LENGTH-1, fp) == NULL)
+	word[0] = '\0';
       break;
     }
 
diff -dur cudd-2.4.1.ORIG/epd/epd.c cudd-2.4.1/epd/epd.c
--- cudd-2.4.1.ORIG/epd/epd.c	2004-08-24 15:33:13.000000000 -0600
+++ cudd-2.4.1/epd/epd.c	2006-02-20 16:07:56.000000000 -0700
@@ -1094,7 +1094,8 @@
 
   sprintf(str, "%E", value);
   pos = strstr(str, "E");
-  sscanf(pos, "E%d", &exponent);
+  if (sscanf(pos, "E%d", &exponent) == EOF)
+    exponent = 0;
   return(exponent);
 }
 
diff -dur cudd-2.4.1.ORIG/util/pipefork.c cudd-2.4.1/util/pipefork.c
--- cudd-2.4.1.ORIG/util/pipefork.c	2004-08-17 18:07:57.000000000 -0600
+++ cudd-2.4.1/util/pipefork.c	2006-02-20 16:07:06.000000000 -0700
@@ -39,8 +39,10 @@
      * fildes[0] for reading from command
      * fildes[1] for writing to command
      */
-    (void) pipe(topipe);
-    (void) pipe(frompipe);
+    if (pipe(topipe) < 0 || pipe(frompipe) < 0) {
+      fputs("Pipe creation failed.\n", stderr);
+      return 1;
+    }
 
 #ifdef __CYGWIN32__
     if ((forkpid = fork()) == 0) {