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: | Anatol Belski | 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: