summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorVasil Dimov <vasil.dimov@oracle.com>2012-12-18 20:55:30 +0200
committerVasil Dimov <vasil.dimov@oracle.com>2012-12-18 20:55:30 +0200
commit17c715881060ae67d537f987a45763840e63827a (patch)
tree639bb2a846484243b205fc65e315702150ad0bf8 /storage
parent6d82d9c90926667de00a75dfb491d8bc615cc6fe (diff)
downloadmariadb-git-17c715881060ae67d537f987a45763840e63827a.tar.gz
Fix Bug#16000909 MEMORY LEAK, MYSQL_INPLACE_ALTER_TABLE
This is a followup to the fix of Bug#14628410 ASSERTION `! IS_SET()' FAILED IN DIAGNOSTICS_AREA::SET_OK_STATUS (satya.bodapati@oracle.com-20121213132316-5joz4phltx9yhjs7) In innobase_mysql_tmpfile(): allocate/open the file after the return(-1); statement.
Diffstat (limited to 'storage')
-rw-r--r--storage/innodb_plugin/handler/ha_innodb.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc
index 340e7cccd97..e15c84c8346 100644
--- a/storage/innodb_plugin/handler/ha_innodb.cc
+++ b/storage/innodb_plugin/handler/ha_innodb.cc
@@ -1140,7 +1140,10 @@ innobase_mysql_tmpfile(void)
DBUG_ENTER("innobase_mysql_tmpfile");
- DBUG_EXECUTE_IF("innobase_tmpfile_creation_failure", return(-1););
+ DBUG_EXECUTE_IF(
+ "innobase_tmpfile_creation_failure",
+ return(-1);
+ );
tmpdir = my_tmpdir(&mysql_tmpdir_list);
@@ -1203,9 +1206,14 @@ innobase_mysql_tmpfile(void)
/*========================*/
{
int fd2 = -1;
- File fd = mysql_tmpfile("ib");
+ File fd;
+
+ DBUG_EXECUTE_IF(
+ "innobase_tmpfile_creation_failure",
+ return(-1);
+ );
- DBUG_EXECUTE_IF("innobase_tmpfile_creation_failure", return(-1););
+ fd = mysql_tmpfile("ib");
if (fd >= 0) {
/* Copy the file descriptor, so that the additional resources