diff options
author | Alexander Nozdrin <alexander.nozdrin@oracle.com> | 2011-05-06 17:39:20 +0400 |
---|---|---|
committer | Alexander Nozdrin <alexander.nozdrin@oracle.com> | 2011-05-06 17:39:20 +0400 |
commit | 32a41e5a25b9683ef79f5787d211c96561637e77 (patch) | |
tree | de9a20a6c8fddf18d59a1dd66965c327e19b2505 /include/mysql.h | |
parent | acbe82380eef7bf41966763b4fc82b17e4c7fb44 (diff) | |
download | mariadb-git-32a41e5a25b9683ef79f5787d211c96561637e77.tar.gz |
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.
Diffstat (limited to 'include/mysql.h')
-rw-r--r-- | include/mysql.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/mysql.h b/include/mysql.h index d3b24f0198a..1966caefdc1 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -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 |