1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-29 00:08:14 +03:00

Patch for Bug#12374486 - SEVERE MEMORY LEAK IN PREPARED STATEMENTS

THAT CALL STORED PROCEDURES.

The bug was introduced by WL#4435. The problem was that if a stored
procedure generated a few result sets with different set of columns,
a new memory would be allocated after every EXECUTE for every
result set.

The fix is to introduce a new memory root in scope of MYSQL_STMT,
and to store result-set metadata in that memory root.
This commit is contained in:
Alexander Nozdrin
2011-05-06 17:39:20 +04:00
parent bc4095643b
commit cd501675d8
3 changed files with 59 additions and 23 deletions

View File

@@ -573,6 +573,8 @@ typedef struct st_mysql_bind
} MYSQL_BIND;
struct st_mysql_stmt_extension;
/* statement handler */
typedef struct st_mysql_stmt
{
@@ -618,7 +620,7 @@ typedef struct st_mysql_stmt
metadata fields when doing mysql_stmt_store_result.
*/
my_bool update_max_length;
void *extension;
struct st_mysql_stmt_extension *extension;
} MYSQL_STMT;
enum enum_stmt_attr_type