diff src/input.cc @ 2862:95e85daad148

[project @ 1997-04-15 22:00:57 by jwe]
author jwe
date Tue, 15 Apr 1997 22:05:13 +0000
parents 8c516da3c1f7
children b4a9f014a8ea
line wrap: on
line diff
--- a/src/input.cc	Sun Apr 13 23:21:38 1997 +0000
+++ b/src/input.cc	Tue Apr 15 22:05:13 1997 +0000
@@ -444,12 +444,13 @@
 
       char *buf = static_cast<char *> (malloc (max_size));
       char *bufptr = buf;
+      int len = 0;
 
       do
 	{
 	  if (fgets (bufptr, grow_size, curr_stream))
 	    {
-	      int len = strlen (bufptr);
+	      len = strlen (bufptr);
 
 	      if (len == grow_size - 1)
 		{
@@ -475,7 +476,12 @@
 		retval = buf;
 	    }
 	  else
-	    break;
+	    {
+	      if (len == 0)
+		free (buf);
+
+	      break;
+	    }
 	}
       while (! retval);
     }
@@ -607,7 +613,15 @@
 	}
     }
   else if (chars_left == 0)
-    status = 0;
+    {
+      if (input_buf)
+	{
+	  free (input_buf);
+	  input_buf = 0;
+	}
+
+      status = 0;
+    }
   else    
     status = -1;