felipe          Tue Jul 22 14:09:24 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/standard       file.c fsock.c proc_open.c streamsfuncs.c 
    /php-src/ext/standard/tests/file    fscanf_variation10.phpt 
                                        fscanf_variation16.phpt 
                                        fscanf_variation22.phpt 
                                        fscanf_variation29.phpt 
                                        fscanf_variation35.phpt 
                                        fscanf_variation4.phpt 
                                        fscanf_variation41.phpt 
                                        fscanf_variation47.phpt 
    /php-src/main       php_streams.h 
    /php-src/sapi/cli   php_cli.c 
  Log:
  - MFH: Fixed bug #44246 (closedir() accepts a file resource opened by fopen())
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/file.c?r1=1.409.2.6.2.28.2.17&r2=1.409.2.6.2.28.2.18&diff_format=u
Index: php-src/ext/standard/file.c
diff -u php-src/ext/standard/file.c:1.409.2.6.2.28.2.17 
php-src/ext/standard/file.c:1.409.2.6.2.28.2.18
--- php-src/ext/standard/file.c:1.409.2.6.2.28.2.17     Mon Jul 21 11:46:18 2008
+++ php-src/ext/standard/file.c Tue Jul 22 14:09:24 2008
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: file.c,v 1.409.2.6.2.28.2.17 2008/07/21 11:46:18 jani Exp $ */
+/* $Id: file.c,v 1.409.2.6.2.28.2.18 2008/07/22 14:09:24 felipe Exp $ */
 
 /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
 
@@ -856,6 +856,8 @@
        stream = php_stream_fopen_tmpfile();
 
        if (stream) {
+               stream->flags |= PHP_STREAM_FLAG_FCLOSE;
+
                php_stream_to_zval(stream, return_value);
        } else {
                RETURN_FALSE;
@@ -885,6 +887,8 @@
        if (stream == NULL) {
                RETURN_FALSE;
        }
+       
+       stream->flags |= PHP_STREAM_FLAG_FCLOSE;
 
        php_stream_to_zval(stream, return_value);
 }
@@ -902,6 +906,12 @@
        }
        
        PHP_STREAM_TO_ZVAL(stream, &arg1);
+       
+       if (!(stream->flags & PHP_STREAM_FLAG_FCLOSE)) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a valid 
stream resource", stream->rsrc_id);
+               RETURN_FALSE;
+       }
+       
        if (!stream->is_persistent) {
                zend_list_delete(stream->rsrc_id);
        } else {
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/fsock.c?r1=1.121.2.1.2.1.2.1&r2=1.121.2.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/fsock.c
diff -u php-src/ext/standard/fsock.c:1.121.2.1.2.1.2.1 
php-src/ext/standard/fsock.c:1.121.2.1.2.1.2.2
--- php-src/ext/standard/fsock.c:1.121.2.1.2.1.2.1      Mon Dec 31 07:17:14 2007
+++ php-src/ext/standard/fsock.c        Tue Jul 22 14:09:24 2008
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: fsock.c,v 1.121.2.1.2.1.2.1 2007/12/31 07:17:14 sebastian Exp $ */
+/* $Id: fsock.c,v 1.121.2.1.2.1.2.2 2008/07/22 14:09:24 felipe Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -79,6 +79,8 @@
        stream = php_stream_xport_create(hostname, hostname_len, 
ENFORCE_SAFE_MODE | REPORT_ERRORS,
                        STREAM_XPORT_CLIENT | STREAM_XPORT_CONNECT, hashkey, 
&tv, NULL, &errstr, &err);
 
+       stream->flags |= PHP_STREAM_FLAG_FCLOSE;
+
        if (port > 0) {
                efree(hostname);
        }
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/proc_open.c?r1=1.36.2.1.2.17.2.2&r2=1.36.2.1.2.17.2.3&diff_format=u
Index: php-src/ext/standard/proc_open.c
diff -u php-src/ext/standard/proc_open.c:1.36.2.1.2.17.2.2 
php-src/ext/standard/proc_open.c:1.36.2.1.2.17.2.3
--- php-src/ext/standard/proc_open.c:1.36.2.1.2.17.2.2  Tue Apr  8 08:42:24 2008
+++ php-src/ext/standard/proc_open.c    Tue Jul 22 14:09:24 2008
@@ -15,7 +15,7 @@
    | Author: Wez Furlong <[EMAIL PROTECTED]>                           |
    +----------------------------------------------------------------------+
  */
-/* $Id: proc_open.c,v 1.36.2.1.2.17.2.2 2008/04/08 08:42:24 jani Exp $ */
+/* $Id: proc_open.c,v 1.36.2.1.2.17.2.3 2008/07/22 14:09:24 felipe Exp $ */
 
 #if 0 && (defined(__linux__) || defined(sun) || defined(__IRIX__))
 # define _BSD_SOURCE           /* linux wants this when XOPEN mode is on */
@@ -969,7 +969,7 @@
                                        zval *retfp;
 
                                        /* nasty hack; don't copy it */
-                                       stream->flags |= 
PHP_STREAM_FLAG_NO_SEEK;
+                                       stream->flags |= 
PHP_STREAM_FLAG_NO_SEEK | PHP_STREAM_FLAG_FCLOSE;
                                        
                                        MAKE_STD_ZVAL(retfp);
                                        php_stream_to_zval(stream, retfp);
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.15.2.17&r2=1.58.2.6.2.15.2.18&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.17 
php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.18
--- php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.17      Mon Jul 21 
16:16:30 2008
+++ php-src/ext/standard/streamsfuncs.c Tue Jul 22 14:09:24 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.17 2008/07/21 16:16:30 jani Exp $ */
+/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.18 2008/07/22 14:09:24 felipe Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -126,6 +126,7 @@
                        STREAM_XPORT_CLIENT | (flags & 
PHP_STREAM_CLIENT_CONNECT ? STREAM_XPORT_CONNECT : 0) |
                        (flags & PHP_STREAM_CLIENT_ASYNC_CONNECT ? 
STREAM_XPORT_CONNECT_ASYNC : 0),
                        hashkey, &tv, context, &errstr, &err);
+               
 
        if (stream == NULL) {
                /* host might contain binary characters */
@@ -154,6 +155,8 @@
                RETURN_FALSE;
        }
        
+       stream->flags |= PHP_STREAM_FLAG_FCLOSE;
+       
        if (errstr) {
                efree(errstr);
        }
@@ -200,6 +203,8 @@
        stream = php_stream_xport_create(host, host_len, ENFORCE_SAFE_MODE | 
REPORT_ERRORS,
                        STREAM_XPORT_SERVER | flags,
                        NULL, NULL, context, &errstr, &err);
+                       
+       stream->flags |= PHP_STREAM_FLAG_FCLOSE;
 
        if (stream == NULL) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to connect 
to %s (%s)", host, errstr == NULL ? "Unknown error" : errstr);
@@ -265,7 +270,9 @@
                                NULL, NULL,
                                &tv, &errstr
                                TSRMLS_CC) && clistream) {
-
+               
+               clistream->flags |= PHP_STREAM_FLAG_FCLOSE;
+               
                if (peername) {
                        ZVAL_STRINGL(zpeername, peername, peername_len, 0);
                }
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation10.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation10.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation10.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation10.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation10.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation10.phpt     Tue Jul 22 
14:09:24 2008
@@ -68,7 +68,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation16.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation16.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation16.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation16.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation16.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation16.phpt     Tue Jul 22 
14:09:24 2008
@@ -67,7 +67,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation22.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation22.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation22.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation22.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation22.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation22.phpt     Tue Jul 22 
14:09:24 2008
@@ -67,7 +67,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation29.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation29.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation29.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation29.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation29.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation29.phpt     Tue Jul 22 
14:09:24 2008
@@ -68,7 +68,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation35.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation35.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation35.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation35.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation35.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation35.phpt     Tue Jul 22 
14:09:24 2008
@@ -63,7 +63,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation4.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation4.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation4.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation4.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation4.phpt:1.1.2.1.2.1  Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation4.phpt      Tue Jul 22 
14:09:24 2008
@@ -64,7 +64,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation41.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation41.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation41.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation41.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation41.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation41.phpt     Tue Jul 22 
14:09:24 2008
@@ -63,7 +63,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fscanf_variation47.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/file/fscanf_variation47.phpt
diff -u php-src/ext/standard/tests/file/fscanf_variation47.phpt:1.1.2.1.2.1 
php-src/ext/standard/tests/file/fscanf_variation47.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/file/fscanf_variation47.phpt:1.1.2.1.2.1 Mon Nov 
 5 17:43:20 2007
+++ php-src/ext/standard/tests/file/fscanf_variation47.phpt     Tue Jul 22 
14:09:24 2008
@@ -63,7 +63,7 @@
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
 echo "\n*** Done ***";
 ?>
http://cvs.php.net/viewvc.cgi/php-src/main/php_streams.h?r1=1.103.2.1.2.4.2.4&r2=1.103.2.1.2.4.2.5&diff_format=u
Index: php-src/main/php_streams.h
diff -u php-src/main/php_streams.h:1.103.2.1.2.4.2.4 
php-src/main/php_streams.h:1.103.2.1.2.4.2.5
--- php-src/main/php_streams.h:1.103.2.1.2.4.2.4        Wed Jun 11 09:01:56 2008
+++ php-src/main/php_streams.h  Tue Jul 22 14:09:24 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_streams.h,v 1.103.2.1.2.4.2.4 2008/06/11 09:01:56 dmitry Exp $ */
+/* $Id: php_streams.h,v 1.103.2.1.2.4.2.5 2008/07/22 14:09:24 felipe Exp $ */
 
 #ifndef PHP_STREAMS_H
 #define PHP_STREAMS_H
@@ -183,6 +183,8 @@
        
 #define PHP_STREAM_FLAG_IS_DIR                                         64
 
+#define PHP_STREAM_FLAG_FCLOSE                                         128
+
 struct _php_stream  {
        php_stream_ops *ops;
        void *abstract;                 /* convenience pointer for abstraction 
*/
http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/php_cli.c?r1=1.129.2.13.2.22.2.8&r2=1.129.2.13.2.22.2.9&diff_format=u
Index: php-src/sapi/cli/php_cli.c
diff -u php-src/sapi/cli/php_cli.c:1.129.2.13.2.22.2.8 
php-src/sapi/cli/php_cli.c:1.129.2.13.2.22.2.9
--- php-src/sapi/cli/php_cli.c:1.129.2.13.2.22.2.8      Tue Mar 25 21:58:29 2008
+++ php-src/sapi/cli/php_cli.c  Tue Jul 22 14:09:24 2008
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_cli.c,v 1.129.2.13.2.22.2.8 2008/03/25 21:58:29 helly Exp $ */
+/* $Id: php_cli.c,v 1.129.2.13.2.22.2.9 2008/07/22 14:09:24 felipe Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -501,6 +501,10 @@
                if (s_err) php_stream_close(s_err);
                return;
        }
+       
+       s_in->flags  |= PHP_STREAM_FLAG_FCLOSE;
+       s_out->flags |= PHP_STREAM_FLAG_FCLOSE;
+       s_err->flags |= PHP_STREAM_FLAG_FCLOSE;
 
 #if PHP_DEBUG
        /* do not close stdout and stderr */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to