Fix a bug a that caused the lib to crash under certain circumstances when an error...
robs [Wed, 12 Dec 2001 14:12:26 +0000 (14:12 +0000)]
README
libfcgi/fcgiapp.c

diff --git a/README b/README
index 8ac940e..611989f 100755 (executable)
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 FastCGI Developer's Kit README
 ------------------------------
 
-    $Id: README,v 1.12 2001/12/07 02:28:14 robs Exp $
+    $Id: README,v 1.13 2001/12/12 14:12:27 robs Exp $
     Copyright (c) 1996 Open Market, Inc.
     See the file "LICENSE.TERMS" for information on usage and redistribution
     of this file, and for a DISCLAIMER OF ALL WARRANTIES.
@@ -30,6 +30,9 @@ Unfortunately documentation of many of the changes have been lost.
 2.2.3
 -----
 
+ *) Fix a bug a that caused the lib to crash under certain circumstances
+    when an error occured on a read
+
  *) Test for iostreams that support a streambuf assigment operator
 
  *) (WIN32) Fixed initialization of the accept mutex when OpenSocket() was used.
index 6a92a41..9c3a281 100644 (file)
@@ -11,7 +11,7 @@
  *
  */
 #ifndef lint
-static const char rcsid[] = "$Id: fcgiapp.c,v 1.32 2001/11/21 21:03:35 robs Exp $";
+static const char rcsid[] = "$Id: fcgiapp.c,v 1.33 2001/12/12 14:12:26 robs Exp $";
 #endif /* not lint */
 
 #include <assert.h>
@@ -112,6 +112,8 @@ int FCGX_GetChar(FCGX_Stream *stream)
     if(stream->isClosed || !stream->isReader)
         return EOF;
     stream->fillBuffProc(stream);
+    if (stream->isClosed)
+        return EOF;
     stream->stopUnget = stream->rdNext;
     if(stream->rdNext != stream->stop)
         return *stream->rdNext++;
@@ -163,10 +165,13 @@ int FCGX_GetStr(char *str, int n, FCGX_Stream *stream)
             if(bytesMoved == n)
                 return bytesMoved;
             str += m;
-       }
+        }
         if(stream->isClosed || !stream->isReader)
             return bytesMoved;
         stream->fillBuffProc(stream);
+        if (stream->isClosed)
+            return bytesMoved;
+
         stream->stopUnget = stream->rdNext;
     }
 }