com php-src: more descriptor fixes: ext/bz2/bz2.c ext/fileinfo/libmagic/funcs.c ext/standard/proc_open.c ex t/standard/streamsfuncs.c
ext/zlib/zlib_fopen_wrapper .c main/streams/plain_wrapper.c

From: Date: Fri, 28 Feb 2014 17:49:02 +0000
Subject: com php-src: more descriptor fixes: ext/bz2/bz2.c ext/fileinfo/libmagic/funcs.c ext/standard/proc_open.c ex t/standard/streamsfuncs.c
ext/zlib/zlib_fopen_wrapper .c main/streams/plain_wrapper.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-76287@lists.php.net to get a copy of this message
Commit: 2d83dca7beb5060a30cfde124e5c97d35285990a Author: Anatol Belski <ab@php.net> Fri, 28 Feb 2014 18:49:02 +0100 Parents: 8647f4e7f58508a7b777923f7db4836552a95fef Branches: str_size_and_int64_56_backport Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=2d83dca7beb5060a30cfde124e5c97d35285990a Log: more descriptor fixes Changed paths: M ext/bz2/bz2.c M ext/fileinfo/libmagic/funcs.c M ext/standard/proc_open.c M ext/standard/streamsfuncs.c M ext/zlib/zlib_fopen_wrapper.c M main/streams/plain_wrapper.c Diff: diff --git a/ext/bz2/bz2.c b/ext/bz2/bz2.c index c633287..91d8676 100644 --- a/ext/bz2/bz2.c +++ b/ext/bz2/bz2.c @@ -31,6 +31,7 @@ #include "ext/standard/file.h" #include "ext/standard/info.h" #include "ext/standard/php_string.h" +#include "main/php_network.h" /* for fileno() */ #include <stdio.h> @@ -245,7 +246,7 @@ PHP_BZ2_API php_stream *_php_stream_bz2open(php_stream_wrapper *wrapper, stream = php_stream_open_wrapper(path, mode, options | STREAM_WILL_CAST, opened_path); if (stream) { - int fd; + php_socket_t fd; if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD, (void **) &fd, REPORT_ERRORS)) { bz_file = BZ2_bzdopen(fd, mode); } @@ -394,7 +395,7 @@ static PHP_FUNCTION(bzopen) NULL); } else if (Z_TYPE_PP(file) == IS_RESOURCE) { /* If it is a resource, than its a stream resource */ - int fd; + php_socket_t fd; php_size_t stream_mode_len; php_stream_from_zval(stream, file); diff --git a/ext/fileinfo/libmagic/funcs.c b/ext/fileinfo/libmagic/funcs.c index ecf60ce..7ac1c56 100644 --- a/ext/fileinfo/libmagic/funcs.c +++ b/ext/fileinfo/libmagic/funcs.c @@ -49,6 +49,9 @@ FILE_RCSID("@(#)$File: funcs.c,v 1.67 2014/02/12 23:20:53 christos Exp $") # define SIZE_MAX ((size_t) -1) #endif +#include "php.h" +#include "main/php_network.h" + #ifndef PREG_OFFSET_CAPTURE # define PREG_OFFSET_CAPTURE (1<<8) #endif @@ -218,7 +221,7 @@ file_buffer(struct magic_set *ms, php_stream *stream, const char *inname, const /* Check if we have a CDF file */ if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0) { - int fd; + php_socket_t fd; TSRMLS_FETCH(); if (stream && SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD, (void **)&fd, 0)) { if ((m = file_trycdf(ms, fd, ubuf, nb)) != 0) { diff --git a/ext/standard/proc_open.c b/ext/standard/proc_open..c index 6136bf4..9d63d1b 100644 --- a/ext/standard/proc_open.c +++ b/ext/standard/proc_open.c @@ -34,6 +34,7 @@ #include "exec.h" #include "php_globals.h" #include "SAPI.h" +#include "main/php_network.h" #ifdef NETWARE #include <proc.h> @@ -535,7 +536,7 @@ PHP_FUNCTION(proc_open) if (Z_TYPE_PP(descitem) == IS_RESOURCE) { /* should be a stream - try and dup the descriptor */ php_stream *stream; - int fd; + php_socket_t fd; php_stream_from_zval(stream, descitem); @@ -608,7 +609,7 @@ PHP_FUNCTION(proc_open) } else if (strcmp(Z_STRVAL_PP(ztype), "file") == 0) { zval **zfile, **zmode; - int fd; + php_socket_t fd; php_stream *stream; descriptors[ndesc].mode = DESC_FILE; diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index cd349d6...c45614a 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -613,7 +613,7 @@ static int stream_array_to_fd_set(zval *stream_array, fd_set *fds, php_socket_t /* Temporary int fd is needed for the STREAM data type on windows, passing this_fd directly to php_stream_cast() would eventually bring a wrong result on x64. php_stream_cast() casts to int internally, and this will leave the higher bits of a SOCKET variable uninitialized on systems with little endian.. */ - int tmp_fd; + php_socket_t tmp_fd; php_stream_from_zval_no_verify(stream, elem); if (stream == NULL) { @@ -624,7 +624,7 @@ static int stream_array_to_fd_set(zval *stream_array, fd_set *fds, php_socket_t * when casting. It is only used here so that the buffered data warning * is not displayed. * */ - if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&tmp_fd, 1) && tmp_fd != -1) { + if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&tmp_fd, 1) && tmp_fd != SOCK_ERR) { php_socket_t this_fd = (php_socket_t)tmp_fd; @@ -663,7 +663,7 @@ static int stream_array_from_fd_set(zval *stream_array, fd_set *fds TSRMLS_DC) /* Temporary int fd is needed for the STREAM data type on windows, passing this_fd directly to php_stream_cast() would eventually bring a wrong result on x64. php_stream_cast() casts to int internally, and this will leave the higher bits of a SOCKET variable uninitialized on systems with little endian. */ - int tmp_fd; + php_socket_t tmp_fd; type = zend_hash_get_current_key_ex(Z_ARRVAL_P(stream_array), @@ -682,7 +682,7 @@ static int stream_array_from_fd_set(zval *stream_array, fd_set *fds TSRMLS_DC) * when casting. It is only used here so that the buffered data warning * is not displayed. */ - if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&tmp_fd, 1) && tmp_fd != -1) { + if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&tmp_fd, 1) && tmp_fd != SOCK_ERR) { php_socket_t this_fd = (php_socket_t)tmp_fd; diff --git a/ext/zlib/zlib_fopen_wrapper.c b/ext/zlib/zlib_fopen_wrapper.c index 17fb216..713a6ec 100644 --- a/ext/zlib/zlib_fopen_wrapper.c +++ b/ext/zlib/zlib_fopen_wrapper.c @@ -25,6 +25,8 @@ #include "php_zlib.h" #include "fopen_wrappers.h" +#include "main/php_network.h" + struct php_gz_stream_data_t { gzFile gz_file; php_stream *stream; @@ -129,7 +131,7 @@ php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, con innerstream = php_stream_open_wrapper_ex(path, mode, STREAM_MUST_SEEK | options | STREAM_WILL_CAST, opened_path, context); if (innerstream) { - int fd; + php_socket_t fd; if (SUCCESS == php_stream_cast(innerstream, PHP_STREAM_AS_FD, (void **) &fd, REPORT_ERRORS)) { self = emalloc(sizeof(*self)); diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index c9d333f..521b800 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -488,7 +488,7 @@ static int php_stdiop_seek(php_stream *stream, zend_off_t offset, int whence, ze static int php_stdiop_cast(php_stream *stream, int castas, void **ret TSRMLS_DC) { - int fd; + php_socket_t fd; php_stdio_stream_data *data = (php_stdio_stream_data*) stream->abstract; assert(data != NULL); @@ -512,31 +512,31 @@ static int php_stdiop_cast(php_stream *stream, int castas, void **ret TSRMLS_DC) } *(FILE**)ret = data->file; - data->fd = -1; + data->fd = SOCK_ERR; } return SUCCESS; case PHP_STREAM_AS_FD_FOR_SELECT: PHP_STDIOP_GET_FD(fd, data); - if (fd < 0) { + if (SOCK_ERR == fd) { return FAILURE; } if (ret) { - *(int*)ret = fd; + *(php_socket_t *)ret = fd; } return SUCCESS; case PHP_STREAM_AS_FD: PHP_STDIOP_GET_FD(fd, data); - if (fd < 0) { + if (SOCK_ERR == fd) { return FAILURE; } if (data->file) { fflush(data->file); } if (ret) { - *(int*)ret = fd; + *(php_socket_t *)ret = fd; } return SUCCESS; default:

« previous php.cvs (#76287) next »