diff options
Diffstat (limited to 'ext/mysqlnd/mysqlnd_wireprotocol.c')
| -rw-r--r-- | ext/mysqlnd/mysqlnd_wireprotocol.c | 36 | 
1 files changed, 18 insertions, 18 deletions
diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index a7bf808d63..2924827e9c 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -42,6 +42,7 @@  #define MYSQLND_DUMP_HEADER_N_BODY2  #define MYSQLND_DUMP_HEADER_N_BODY_FULL2 +  #define	PACKET_READ_HEADER_AND_BODY(packet, conn, buf, buf_size, packet_type_as_text, packet_type) \  	{ \  		if (FAIL == mysqlnd_read_header((conn), &((packet)->header) TSRMLS_CC)) {\ @@ -69,6 +70,7 @@  											1); \  	} +  extern mysqlnd_packet_methods packet_methods[];  static const char *unknown_sqlstate= "HY000"; @@ -610,7 +612,7 @@ php_mysqlnd_greet_read(void *_packet, MYSQLND *conn TSRMLS_DC)  	/* pad2 */  	p+= 13; -	if ((size_t)(p - buf) < packet->header.size) { +	if (p - buf < packet->header.size) {  		/* scramble_buf is split into two parts */  		memcpy(packet->scramble_buf + SCRAMBLE_LENGTH_323,  				p, SCRAMBLE_LENGTH - SCRAMBLE_LENGTH_323); @@ -624,7 +626,7 @@ php_mysqlnd_greet_read(void *_packet, MYSQLND *conn TSRMLS_DC)  	DBG_INF_FMT("server_capabilities=%d charset_no=%d server_status=%d",  				packet->server_capabilities, packet->charset_no, packet->server_status); -	if ((size_t)(p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("GREET packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "GREET packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",  						 p - begin - packet->header.size); @@ -809,7 +811,7 @@ php_mysqlnd_ok_read(void *_packet, MYSQLND *conn TSRMLS_DC)  	p+= 2;  	/* There is a message */ -	if (packet->header.size > (size_t) (p - buf) && (i = php_mysqlnd_net_field_length(&p))) { +	if (packet->header.size > p - buf && (i = php_mysqlnd_net_field_length(&p))) {  		packet->message = pestrndup((char *)p, MIN(i, sizeof(buf) - (p - buf)), conn->persistent);  		packet->message_len = i;  	} else { @@ -820,7 +822,7 @@ php_mysqlnd_ok_read(void *_packet, MYSQLND *conn TSRMLS_DC)  				packet->affected_rows, packet->last_insert_id, packet->server_status,  				packet->warning_count); -	if ((size_t)(p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("OK packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "OK packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",  						 p - begin - packet->header.size); @@ -893,7 +895,7 @@ php_mysqlnd_eof_read(void *_packet, MYSQLND *conn TSRMLS_DC)  		packet->server_status = 0;  	} -	if ((size_t)(p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("EOF packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "EOF packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",  						 p - begin - packet->header.size); @@ -1043,7 +1045,7 @@ php_mysqlnd_rset_header_read(void *_packet, MYSQLND *conn TSRMLS_DC)  			packet->warning_count = uint2korr(p);  			p+=2;  			/* Check for additional textual data */ -			if (packet->header.size  > (size_t) (p - buf) && (len = php_mysqlnd_net_field_length(&p))) { +			if (packet->header.size  > (p - buf) && (len = php_mysqlnd_net_field_length(&p))) {  				packet->info_or_local_file = mnd_pemalloc(len + 1, conn->persistent);  				memcpy(packet->info_or_local_file, p, len);  				packet->info_or_local_file[len] = '\0'; @@ -1058,7 +1060,7 @@ php_mysqlnd_rset_header_read(void *_packet, MYSQLND *conn TSRMLS_DC)  			/* Result set */  			break;  	} -	if ((size_t)(p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("RSET_HEADER packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "GREET packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",  						 p - begin - packet->header.size); @@ -1186,7 +1188,7 @@ php_mysqlnd_rset_field_read(void *_packet, MYSQLND *conn TSRMLS_DC)  	  NULL_LENGTH (0xFB) comes from COM_FIELD_LIST when the default value is NULL.  	  Otherwise the string is length encoded.  	*/ -	if (packet->header.size > (size_t)(p - buf) && +	if (packet->header.size > (p - buf) &&  		(len = php_mysqlnd_net_field_length(&p)) &&  		len != MYSQLND_NULL_LENGTH)  	{ @@ -1198,7 +1200,7 @@ php_mysqlnd_rset_field_read(void *_packet, MYSQLND *conn TSRMLS_DC)  		p += len;  	} -	if ((size_t)(p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("RSET field packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Result set field packet "MYSQLND_SZ_T_SPEC" bytes "  				 		"shorter than expected", p - begin - packet->header.size); @@ -1326,7 +1328,7 @@ php_mysqlnd_read_row_ex(MYSQLND *conn, MYSQLND_MEMORY_POOL_CHUNK **buffer,  			  We need a trailing \0 for the last string, in case of text-mode,  			  to be able to implement read-only variables.  			*/ -			mysqlnd_mempool_resize_chunk((*buffer), *data_size + 1 TSRMLS_CC); +			(*buffer)->resize_chunk((*buffer), *data_size + 1 TSRMLS_CC);  			/* The position could have changed, recalculate */  			p = (*buffer)->ptr + (*data_size - header.size);  		} @@ -1342,8 +1344,8 @@ php_mysqlnd_read_row_ex(MYSQLND *conn, MYSQLND_MEMORY_POOL_CHUNK **buffer,  			break;  		}  	} -	if (ret == FAIL && (*buffer)) { -		mysqlnd_mempool_free_chunk(*buffer, TRUE TSRMLS_CC); +	if (ret == FAIL) { +		(*buffer)->free_chunk((*buffer), TRUE TSRMLS_CC);  		*buffer = NULL;  	}  	*data_size -= prealloc_more_bytes; @@ -1361,10 +1363,8 @@ void php_mysqlnd_rowp_read_binary_protocol(MYSQLND_MEMORY_POOL_CHUNK * row_buffe  	zend_uchar *null_ptr, bit;  	zval **current_field, **end_field, **start_field;  	zend_bool as_unicode = conn->options.numeric_and_datetime_as_unicode; -#ifdef USE_ZVAL_CACHE  	zend_bool allocated; -	void *obj = NULL; -#endif +	void *obj;  	DBG_ENTER("php_mysqlnd_rowp_read_binary_protocol"); @@ -1826,7 +1826,7 @@ void php_mysqlnd_rowp_free_mem(void *_packet, zend_bool alloca TSRMLS_DC)  	DBG_ENTER("php_mysqlnd_rowp_free_mem");  	p = (php_mysql_packet_row *) _packet;  	if (p->row_buffer) { -		mysqlnd_mempool_free_chunk(p->row_buffer, TRUE TSRMLS_CC); +		p->row_buffer->free_chunk(p->row_buffer, TRUE TSRMLS_CC);  		p->row_buffer = NULL;  	}  	DBG_INF_FMT("alloca=%d persistent=%d", (int)alloca, (int)p->header.persistent); @@ -1944,7 +1944,7 @@ php_mysqlnd_prepare_read(void *_packet, MYSQLND *conn TSRMLS_DC)  	DBG_INF_FMT("Prepare packet read: stmt_id=%d fields=%d params=%d",  				packet->stmt_id, packet->field_count, packet->param_count); -	if ((size_t) (p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("PREPARE packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "PREPARE packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",  						 p - begin - packet->header.size); @@ -2004,7 +2004,7 @@ php_mysqlnd_chg_user_read(void *_packet, MYSQLND *conn TSRMLS_DC)  										 packet->error_info.sqlstate  										 TSRMLS_CC);  	} -	if ((size_t)(p - begin) > packet->header.size) { +	if (p - begin > packet->header.size) {  		DBG_ERR_FMT("CHANGE_USER packet %d bytes shorter than expected", p - begin - packet->header.size);  		php_error_docref(NULL TSRMLS_CC, E_WARNING, "CHANGE_USER packet "MYSQLND_SZ_T_SPEC" bytes shorter than expected",  						 p - begin - packet->header.size);  | 
