com php-src: Merge branch 'PHP-7.0' into PHP-7.1: NEWS ext/mysqlnd/mysqlnd_wireprotocol.c

[email protected] (Nikita Popov)
Newsgroups php.cvs
Message-ID <[email protected]>
Commit:    98fceaf61eff17d98926f3e6f8f39301066ca001
Author:    Nikita Popov <[email protected]>         Sun, 12 Feb 2017 12:50:14 +0100
Parents:   5a1bb3891a745bdf45a2ce7bdf0238d7fa03dd39 01c1afa79f614fe8376e73f4e73f392160923745
Branches:  PHP-7.1 master

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

Log:
Merge branch 'PHP-7.0' into PHP-7.1

Changed paths:
  MM  NEWS
  MM  ext/mysqlnd/mysqlnd_wireprotocol.c


Diff:
diff --cc ext/mysqlnd/mysqlnd_wireprotocol.c
index d549571,6113543..90ae615
--- a/ext/mysqlnd/mysqlnd_wireprotocol.c
+++ b/ext/mysqlnd/mysqlnd_wireprotocol.c
@@@ -1466,6 -1441,6 +1466,7 @@@ php_mysqlnd_read_row_ex(MYSQLND_PFC * p
  	MYSQLND_PACKET_HEADER header;
  	zend_uchar * p = NULL;
  	zend_bool first_iteration = TRUE;
++	size_t prealloc_more_bytes;
  
  	DBG_ENTER("php_mysqlnd_read_row_ex");
  	
@@@ -1476,15 -1457,10 +1477,16 @@@
  	  for next one if they have 2^24 - 1 sizes. But just read the header of a
  	  zero-length byte, don't read the body, there is no such.
  	*/
 +
 +	/*
 +	  We're allocating an extra byte, as php_mysqlnd_rowp_read_text_protocol_aux
 +	  needs to be able to append a terminating \0 for atoi/atof.
 +	*/
- 	*data_size = 1;
++	prealloc_more_bytes = 1;
  	
+ 	*data_size = 0;
  	while (1) {
 -		if (FAIL == mysqlnd_read_header(conn->net, &header, conn->stats, conn->error_info)) {
 +		if (FAIL == mysqlnd_read_header(pfc, vio, &header, stats, error_info)) {
  			ret = FAIL;
  			break;
  		}
@@@ -1493,7 -1469,8 +1495,7 @@@
  
  		if (first_iteration) {
  			first_iteration = FALSE;
- 			*buffer = pool->get_chunk(pool, *data_size);
 -			*buffer = result_set_memory_pool->get_chunk(
 -				result_set_memory_pool, *data_size + prealloc_more_bytes);
++			*buffer = pool->get_chunk(pool, *data_size + prealloc_more_bytes);
  			if (!*buffer) {
  				ret = FAIL;
  				break;
@@@ -1508,8 -1485,8 +1510,8 @@@
  			/*
  			  We have to realloc the buffer.
  			*/
- 			if (FAIL == pool->resize_chunk(pool, *buffer, *data_size)) {
 -			if (FAIL == (*buffer)->resize_chunk((*buffer), *data_size + prealloc_more_bytes)) {
 -				SET_OOM_ERROR(*conn->error_info);
++			if (FAIL == pool->resize_chunk(pool, *buffer, *data_size + prealloc_more_bytes)) {
 +				SET_OOM_ERROR(error_info);
  				ret = FAIL;
  				break;
  			}
@@@ -1528,10 -1505,9 +1530,9 @@@
  		}
  	}
  	if (ret == FAIL && *buffer) {
 -		(*buffer)->free_chunk((*buffer));
 +		pool->free_chunk(pool, *buffer);
  		*buffer = NULL;
  	}
- 	(*data_size)--;
  	DBG_RETURN(ret);
  }
  /* }}} */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.