summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2005-09-05 16:50:32 +0200
committerunknown <msvensson@neptunus.(none)>2005-09-05 16:50:32 +0200
commite10b50e6f13206ec8fc320518d4460ca39a12ed2 (patch)
tree8b2acb1a2b0329b24a35f27baa612f5c387659b9 /client
parent7f98b2a04625a9255103db171e542e523aa0b161 (diff)
downloadmariadb-git-e10b50e6f13206ec8fc320518d4460ca39a12ed2.tar.gz
Bug#12959 mysqltest crashes if testcase passed with -x option
client/mysqltest.c: Fixes for mysqltest -x <filename> mysql-test/t/mysqltest.test: Test mysqltest -x <filename> mysql-test/include/mysqltest-x.inc: New BitKeeper file ``mysql-test/include/mysqltest-x.inc''
Diffstat (limited to 'client')
-rw-r--r--client/mysqltest.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c
index 33702e9d1d2..78d873468c4 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -2169,8 +2169,10 @@ int read_line(char *buf, int size)
if (feof(cur_file->file))
{
found_eof:
- if (cur_file->file != stdin)
+ if (cur_file->file != stdin){
my_fclose(cur_file->file, MYF(0));
+ cur_file->file= 0;
+ }
my_free((gptr)cur_file->file_name, MYF(MY_ALLOW_ZERO_PTR));
cur_file->file_name= 0;
lineno--;
@@ -2556,10 +2558,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
argument= buff;
}
fn_format(buff, argument, "", "", 4);
- DBUG_ASSERT(cur_file->file == 0);
+ DBUG_ASSERT(cur_file == file_stack && cur_file->file == 0);
if (!(cur_file->file=
my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(MY_WME))))
- die("Could not open %s: errno = %d", argument, errno);
+ die("Could not open %s: errno = %d", buff, errno);
+ cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
break;
}
case 'm':
@@ -3746,9 +3749,8 @@ int main(int argc, char **argv)
embedded_server_args,
(char**) embedded_server_groups))
die("Can't initialize MySQL server");
- if (cur_file == file_stack)
+ if (cur_file == file_stack && cur_file->file == 0)
{
- DBUG_ASSERT(cur_file->file == 0);
cur_file->file= stdin;
cur_file->file_name= my_strdup("<stdin>", MYF(MY_WME));
}