com php-src: Check for NULL ptr from get_stream() befor e passing it on to php_stream_cast(): ext /mysqlnd/mysqlnd.c

From: Date: Mon, 05 Aug 2013 14:58:37 +0000
Subject: com php-src: Check for NULL ptr from get_stream() befor e passing it on to php_stream_cast(): ext /mysqlnd/mysqlnd.c
Groups: php.cvs 
Request: Send a blank email to [email protected] to get a copy of this message
Commit:    85b7e9f046acacb323e2cb53eb792785b69a37bb
Author:    Kalle Sommer Nielsen <[email protected]>         Mon, 5 Aug 2013 16:58:37 +0200
Parents:   8f74384947d81c92250dc55fe78cf5d612b18e70
Branches:  master

Link:       http://git.php.net/?p=php-src.git;a=commitdiff;h=85b7e9f046acacb323e2cb53eb792785b69a37bb

Log:
Check for NULL ptr from get_stream() before passing it on to php_stream_cast()

Changed paths:
  M  ext/mysqlnd/mysqlnd.c


Diff:
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index 1a89869..0a856f1 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -1261,6 +1261,7 @@ MYSQLND ** mysqlnd_stream_array_check_for_readiness(MYSQLND ** conn_array
TSRMLS
 static int mysqlnd_stream_array_to_fd_set(MYSQLND ** conn_array, fd_set * fds, php_socket_t *
max_fd TSRMLS_DC)
 {
 	php_socket_t this_fd;
+	php_stream *stream = NULL;
 	int cnt = 0;
 	MYSQLND **p = conn_array;
 
@@ -1270,7 +1271,8 @@ static int mysqlnd_stream_array_to_fd_set(MYSQLND ** conn_array, fd_set * fds,
p
 		 * when casting.  It is only used here so that the buffered data warning
 		 * is not displayed.
 		 * */
-		if (SUCCESS ==
php_stream_cast((*p)->data->net->data->m.get_stream((*p)->data->net TSRMLS_CC),
PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL,
+		stream = (*p)->data->net->data->m.get_stream((*p)->data->net TSRMLS_CC);
+		if (stream != NULL && SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT |
PHP_STREAM_CAST_INTERNAL,
 										(void*)&this_fd, 1) && this_fd >= 0) {
 
 			PHP_SAFE_FD_SET(this_fd, fds);
@@ -1288,6 +1290,7 @@ static int mysqlnd_stream_array_to_fd_set(MYSQLND ** conn_array, fd_set * fds,
p
 static int mysqlnd_stream_array_from_fd_set(MYSQLND ** conn_array, fd_set * fds TSRMLS_DC)
 {
 	php_socket_t this_fd;
+	php_stream *stream = NULL;
 	int ret = 0;
 	zend_bool disproportion = FALSE;
 
@@ -1295,7 +1298,8 @@ static int mysqlnd_stream_array_from_fd_set(MYSQLND ** conn_array, fd_set *
fds
 	MYSQLND **fwd = conn_array, **bckwd = conn_array;
 
 	while (*fwd) {
-		if (SUCCESS ==
php_stream_cast((*fwd)->data->net->data->m.get_stream((*fwd)->data->net
TSRMLS_CC), PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL,
+		stream = (*fwd)->data->net->data->m.get_stream((*fwd)->data->net TSRMLS_CC);
+		if (stream != NULL && SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT |
PHP_STREAM_CAST_INTERNAL,
 										(void*)&this_fd, 1) && this_fd >= 0) {
 			if (PHP_SAFE_FD_ISSET(this_fd, fds)) {
 				if (disproportion) {



Thread (1 message)

  • Kalle Sommer Nielsen
« previous php.cvs (#72834) next »