Skip to content

Commit f81498c

Browse files
committed
Fixed invalid read
1 parent ffaf8be commit f81498c

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

ext/mysqlnd/mysqlnd.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -2764,7 +2764,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsi
27642764
do {
27652765
smart_str tmp_str = {0, 0};
27662766
if (mode & TRANS_START_WITH_CONSISTENT_SNAPSHOT) {
2767-
if (tmp_str.s->len) {
2767+
if (tmp_str.s) {
27682768
smart_str_appendl(&tmp_str, ", ", sizeof(", ") - 1);
27692769
}
27702770
smart_str_appendl(&tmp_str, "WITH CONSISTENT SNAPSHOT", sizeof("WITH CONSISTENT SNAPSHOT") - 1);
@@ -2792,7 +2792,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsi
27922792
{
27932793
char * name_esc = mysqlnd_escape_string_for_tx_name_in_comment(name TSRMLS_CC);
27942794
char * query;
2795-
unsigned int query_len = mnd_sprintf(&query, 0, "START TRANSACTION%s %s", name_esc? name_esc:"", tmp_str.s->val? tmp_str.s->val:"");
2795+
unsigned int query_len = mnd_sprintf(&query, 0, "START TRANSACTION%s %s", name_esc? name_esc:"", tmp_str.s? tmp_str.s->val:"");
27962796
smart_str_free(&tmp_str);
27972797
if (name_esc) {
27982798
mnd_efree(name_esc);

ext/mysqlnd/mysqlnd_ps.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,12 @@ MYSQLND_METHOD(mysqlnd_stmt, store_result)(MYSQLND_STMT * const s TSRMLS_DC)
111111
DBG_RETURN(NULL);
112112
}
113113
/* if pecalloc is used valgrind barks gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE Linux) */
114-
set->data = mnd_emalloc((size_t)(result->stored_data->row_count * result->meta->field_count * sizeof(zval *)));
114+
set->data = mnd_emalloc((size_t)(result->stored_data->row_count * result->meta->field_count * sizeof(zval)));
115115
if (!set->data) {
116116
SET_OOM_ERROR(*conn->error_info);
117117
DBG_RETURN(NULL);
118118
}
119-
memset(set->data, 0, (size_t)(result->stored_data->row_count * result->meta->field_count * sizeof(zval *)));
119+
memset(set->data, 0, (size_t)(result->stored_data->row_count * result->meta->field_count * sizeof(zval)));;
120120
}
121121
/* Position at the first row */
122122
set->data_cursor = set->data;

0 commit comments

Comments
 (0)