]> granicus.if.org Git - php/commitdiff
- Fixed borked refactoring in r307437 (using SUCCESS/FAILURE return instead of
authorGustavo André dos Santos Lopes <cataphract@php.net>
Sun, 4 Sep 2011 22:36:33 +0000 (22:36 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Sun, 4 Sep 2011 22:36:33 +0000 (22:36 +0000)
  out parameter).
- Fixed signature of php_stream_copy_to_stream_ex to return int in 5.4/trunk
  instead of size_t, as the function only returns SUCCESS/FAILURE.

main/streams/cast.c

index 38eb1a987c009d8b5ab7167271ffb1845bda78c7..d03cae3e2992f8b25e0820435cf2eeb24ee34767 100644 (file)
@@ -271,15 +271,15 @@ PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show
 
                        newstream = php_stream_fopen_tmpfile();
                        if (newstream) {
-                               size_t retval = php_stream_copy_to_stream_ex(stream, newstream, PHP_STREAM_COPY_ALL, NULL);
+                               size_t retcopy = php_stream_copy_to_stream_ex(stream, newstream, PHP_STREAM_COPY_ALL, NULL);
 
-                               if (ret != SUCCESS) {
+                               if (retcopy != SUCCESS) {
                                        php_stream_close(newstream);
                                } else {
-                                       int retcode = php_stream_cast(newstream, castas | flags, (void **)ret, show_err);
+                                       int retcast = php_stream_cast(newstream, castas | flags, (void **)ret, show_err);
 
-                                       if (retcode == SUCCESS) {
-                                               rewind(*(FILE**)retval);
+                                       if (retcast == SUCCESS) {
+                                               rewind(*(FILE**)ret);
                                        }
 
                                        /* do some specialized cleanup */
@@ -287,7 +287,9 @@ PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show
                                                php_stream_free(stream, PHP_STREAM_FREE_CLOSE_CASTED);
                                        }
 
-                                       return retcode;
+                                       /* TODO: we probably should be setting .stdiocast and .fclose_stdiocast or
+                                        * we may be leaking the FILE*. Needs investigation, though. */
+                                       return retcast;
                                }
                        }
                }