]> granicus.if.org Git - php/commitdiff
Avoid a potential double fclose().
authorWez Furlong <wez@php.net>
Sun, 17 Nov 2002 01:06:31 +0000 (01:06 +0000)
committerWez Furlong <wez@php.net>
Sun, 17 Nov 2002 01:06:31 +0000 (01:06 +0000)
main/streams.c

index bb6a3bd082ff1a6ca418364dec957be014803879..bf0633664ddf488fa5365c4f5af7413be5032234 100755 (executable)
@@ -1336,10 +1336,12 @@ static int php_stdiop_close(php_stream *stream, int close_handle TSRMLS_DC)
        assert(data != NULL);
 
        if (close_handle) {
-               if (data->is_process_pipe) {
-                       ret = pclose(data->file);
-               } else {
-                       ret = fclose(data->file);
+               if (data->file) {
+                       if (data->is_process_pipe) {
+                               ret = pclose(data->file);
+                       } else {
+                               ret = fclose(data->file);
+                       }
                }
                if (data->temp_file_name) {
                        unlink(data->temp_file_name);
@@ -1347,6 +1349,7 @@ static int php_stdiop_close(php_stream *stream, int close_handle TSRMLS_DC)
                }
        } else {
                ret = 0;
+               data->file = NULL;
        }
 
        /* STDIO streams are never persistent! */