--- 5.0repos/mysys/mf_tempfile.c 2007-03-23 11:01:46.000000000 +0100 +++ mysql-5.0/mysys/mf_tempfile.c 2007-06-05 14:46:24.214130500 +0200 @@ -59,6 +59,8 @@ myf MyFlags __attribute__((unused))) { File file= -1; + char *sztmpdir; + MY_TMPDIR tmpdir; DBUG_ENTER("create_temp_file"); DBUG_PRINT("enter", ("dir: %s, prefix: %s", dir, prefix)); @@ -69,8 +71,21 @@ the file and release it's handle - uses up to the first three letters from prefix */ + sztmpdir= 0; + if(!dir) + { + init_tmpdir(&tmpdir,0); + sztmpdir=my_tmpdir(&tmpdir); + dir=sztmpdir; + } if (GetTempFileName(dir, prefix, 0, to) == 0) - DBUG_RETURN(-1); + { + if(sztmpdir) + free_tmpdir(&tmpdir); + DBUG_RETURN(-1); + } + if(sztmpdir) + free_tmpdir(&tmpdir); DBUG_PRINT("info", ("name: %s", to));