diff --git a/deps/Makefile b/deps/Makefile index 13eed9c52..3670281b8 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -230,6 +230,7 @@ endif cd mariadb-client-library/mariadb_client && patch -p0 < ../client_deprecate_eof.patch cd mariadb-client-library/mariadb_client && patch -p0 < ../cr_new_stmt_metadata_removal.patch cd mariadb-client-library/mariadb_client && patch -p0 < ../ps_buffer_stmt_read_all_rows.patch + cd mariadb-client-library/mariadb_client && patch -p0 < ../mariadb_stmt_store_result_err.patch ifeq ($(WITHASAN),1) cd mariadb-client-library/mariadb_client && patch -p0 < ../mariadb_asan.patch endif diff --git a/deps/mariadb-client-library/mariadb_stmt_store_result_err.patch b/deps/mariadb-client-library/mariadb_stmt_store_result_err.patch new file mode 100644 index 000000000..ac493d329 --- /dev/null +++ b/deps/mariadb-client-library/mariadb_stmt_store_result_err.patch @@ -0,0 +1,14 @@ +diff --git libmariadb/mariadb_stmt.c libmariadb/mariadb_stmt.c +index ba1617b..1c8d2e6 100644 +--- libmariadb/mariadb_stmt.c ++++ libmariadb/mariadb_stmt.c +@@ -1838,6 +1838,9 @@ int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt) + stmt->result.data= NULL; + stmt->result.rows= 0; + stmt->mysql->status= MYSQL_STATUS_READY; ++ /* In case of error, stmt internal state needs to be reset. Otherwise state machine could be left in an ++ inconsistent state and further calls to 'mysql_stmt_execute' will halt. */ ++ stmt->state= MYSQL_STMT_FETCH_DONE; + return(1); + } +