Commit 6d6af547 authored by Nirbhay Choubey's avatar Nirbhay Choubey

Merge of patch for bug#14685362 from mysql-5.1.

parents 56630dfd a6adbd05
/* /*
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -1849,7 +1849,7 @@ static int read_and_execute(bool interactive) ...@@ -1849,7 +1849,7 @@ static int read_and_execute(bool interactive)
String buffer; String buffer;
#endif #endif
char *line; char *line= NULL;
char in_string=0; char in_string=0;
ulong line_number=0; ulong line_number=0;
bool ml_comment= 0; bool ml_comment= 0;
...@@ -1913,6 +1913,13 @@ static int read_and_execute(bool interactive) ...@@ -1913,6 +1913,13 @@ static int read_and_execute(bool interactive)
#else #else
if (opt_outfile) if (opt_outfile)
fputs(prompt, OUTFILE); fputs(prompt, OUTFILE);
/*
free the previous entered line.
Note: my_free() cannot be used here as the memory was allocated under
the readline/libedit library.
*/
if (line)
free(line);
line= readline(prompt); line= readline(prompt);
#endif /* defined(__WIN__) */ #endif /* defined(__WIN__) */
...@@ -1970,8 +1977,17 @@ static int read_and_execute(bool interactive) ...@@ -1970,8 +1977,17 @@ static int read_and_execute(bool interactive)
#if defined(__WIN__) #if defined(__WIN__)
buffer.free(); buffer.free();
tmpbuf.free(); tmpbuf.free();
#else
if (interactive)
/*
free the last entered line.
Note: my_free() cannot be used here as the memory was allocated under
the readline/libedit library.
*/
free(line);
#endif #endif
return status.exit_status; return status.exit_status;
} }
......
...@@ -2215,6 +2215,8 @@ mysql_autodetect_character_set(MYSQL *mysql) ...@@ -2215,6 +2215,8 @@ mysql_autodetect_character_set(MYSQL *mysql)
} }
#endif #endif
if (mysql->options.charset_name)
my_free(mysql->options.charset_name);
if (!(mysql->options.charset_name= my_strdup(csname, MYF(MY_WME)))) if (!(mysql->options.charset_name= my_strdup(csname, MYF(MY_WME))))
return 1; return 1;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment