diff options
author | Georgi Kodinov <joro@sun.com> | 2010-03-09 11:18:46 +0200 |
---|---|---|
committer | Georgi Kodinov <joro@sun.com> | 2010-03-09 11:18:46 +0200 |
commit | df8642b212da0a6333de5894d449180e012a47b3 (patch) | |
tree | 5f0f9f09bbe8ed615ca03103c83c2cd3c5dbd606 /client | |
parent | d0bb5465b893b23da8e986e3b9b997e71084b82d (diff) | |
download | mariadb-git-df8642b212da0a6333de5894d449180e012a47b3.tar.gz |
Bug #41057: mysql_update fails FATAL ERROR: Failed to create temporary file for defaults
mysql_upgrade was passing an non-initialized non-null tmpdir to create_temp_file() if no
--tmpdir was specified. This prevents create_temp_file() from taking the system
temporary file path and as a result mysql_upgrade was trying to open a file in a
directory that it may not have write access to.
Fixed by making sure mysql_upgrade will pass a zero length temp dir string to
create_temp_file() if no --tmpdir is specified.
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql_upgrade.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index 689a2c82571..ade8e30648a 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -44,7 +44,7 @@ static DYNAMIC_STRING conn_args; static char *opt_password= 0; static my_bool tty_password= 0; -static char opt_tmpdir[FN_REFLEN]; +static char opt_tmpdir[FN_REFLEN] = ""; #ifndef DBUG_OFF static char *default_dbug_option= (char*) "d:t:O,/tmp/mysql_upgrade.trace"; @@ -459,7 +459,8 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res, DBUG_ENTER("run_query"); DBUG_PRINT("enter", ("query: %s", query)); - if ((fd= create_temp_file(query_file_path, opt_tmpdir, + if ((fd= create_temp_file(query_file_path, + opt_tmpdir[0] ? opt_tmpdir : NULL, "sql", O_CREAT | O_SHARE | O_RDWR, MYF(MY_WME))) < 0) die("Failed to create temporary file for defaults"); |