diff options
Diffstat (limited to 'ext/mysqlnd/mysqlnd_wireprotocol.c')
-rw-r--r-- | ext/mysqlnd/mysqlnd_wireprotocol.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index 072fdde97a..f98cb6c971 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -1,7 +1,5 @@ /* +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ | Copyright (c) The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | @@ -43,8 +41,7 @@ const char mysqlnd_read_body_name[] = "mysqlnd_read_body"; #define ERROR_MARKER 0xFF #define EODATA_MARKER 0xFE -/* {{{ mysqlnd_command_to_text - */ +/* {{{ mysqlnd_command_to_text */ const char * const mysqlnd_command_to_text[COM_END] = { "SLEEP", "QUIT", "INIT_DB", "QUERY", "FIELD_LIST", @@ -974,7 +971,6 @@ size_t php_mysqlnd_cmd_write(MYSQLND_CONN_DATA * conn, void * _packet) MYSQLND_VIO * vio = conn->vio; MYSQLND_STATS * stats = conn->stats; MYSQLND_CONNECTION_STATE * connection_state = &conn->state; - const unsigned int error_reporting = EG(error_reporting); size_t sent = 0; DBG_ENTER("php_mysqlnd_cmd_write"); @@ -984,10 +980,6 @@ size_t php_mysqlnd_cmd_write(MYSQLND_CONN_DATA * conn, void * _packet) */ pfc->data->m.reset(pfc, stats, error_info); - if (error_reporting) { - EG(error_reporting) = 0; - } - MYSQLND_INC_CONN_STATISTIC(stats, STAT_PACKETS_SENT_CMD); #ifdef MYSQLND_DO_WIRE_CHECK_BEFORE_COMMAND @@ -1020,10 +1012,6 @@ size_t php_mysqlnd_cmd_write(MYSQLND_CONN_DATA * conn, void * _packet) } } end: - if (error_reporting) { - /* restore error reporting */ - EG(error_reporting) = error_reporting; - } if (!sent) { SET_CONNECTION_STATE(connection_state, CONN_QUIT_SENT); } @@ -1577,7 +1565,7 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_ROW_BUFFER * row_buffer, zval * " bytes after end of packet", (p + len) - packet_end - 1); DBG_RETURN(FAIL); } else { -#if defined(MYSQLND_STRING_TO_INT_CONVERSION) +#ifdef MYSQLND_STRING_TO_INT_CONVERSION struct st_mysqlnd_perm_bind perm_bind = mysqlnd_ps_fetch_functions[fields_metadata[i].type]; #endif @@ -1683,12 +1671,8 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_ROW_BUFFER * row_buffer, zval * *(p + len) = save; } #endif /* MYSQLND_STRING_TO_INT_CONVERSION */ - else if (len == 0) { - ZVAL_EMPTY_STRING(current_field); - } else if (len == 1) { - ZVAL_INTERNED_STR(current_field, ZSTR_CHAR((zend_uchar)*(char *)p)); - } else { - ZVAL_STRINGL(current_field, (char *)p, len); + else { + ZVAL_STRINGL_FAST(current_field, (char *)p, len); } p += len; } @@ -2012,7 +1996,7 @@ php_mysqlnd_chg_user_read(MYSQLND_CONN_DATA * conn, void * _packet) packet->response_code = uint1korr(p); p++; - if (packet->header.size == 1 && buf[0] == EODATA_MARKER && packet->server_capabilities & CLIENT_SECURE_CONNECTION) { + if (packet->header.size == 1 && buf[0] == EODATA_MARKER && (packet->server_capabilities & CLIENT_SECURE_CONNECTION)) { /* We don't handle 3.23 authentication */ packet->server_asked_323_auth = TRUE; DBG_RETURN(FAIL); @@ -2166,7 +2150,9 @@ size_t php_mysqlnd_cached_sha2_result_write(MYSQLND_CONN_DATA * conn, void * _pa int1store(buffer + MYSQLND_HEADER_SIZE, '\2'); sent = pfc->data->m.send(pfc, vio, buffer, 1, stats, error_info); } else { - memcpy(buffer + MYSQLND_HEADER_SIZE, packet->password, packet->password_len); + if (packet->password_len != 0) { + memcpy(buffer + MYSQLND_HEADER_SIZE, packet->password, packet->password_len); + } sent = pfc->data->m.send(pfc, vio, buffer, packet->password_len, stats, error_info); } |