From 08f78070a5a2b6354571443473f24983a0134386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Andr=C3=A9=20dos=20Santos=20Lopes?= Date: Sun, 4 Sep 2011 22:36:33 +0000 Subject: [PATCH] - Fixed borked refactoring in r307437 (using SUCCESS/FAILURE return instead of 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/main/streams/cast.c b/main/streams/cast.c index 38eb1a987c0..d03cae3e299 100644 --- a/main/streams/cast.c +++ b/main/streams/cast.c @@ -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; } } }