Commit a7163ce9 authored by Murthy Narkedimilli's avatar Murthy Narkedimilli

Applying patch for bug 18779944

parent d3625112
...@@ -5538,19 +5538,36 @@ int main(int argc, char **argv) ...@@ -5538,19 +5538,36 @@ int main(int argc, char **argv)
dump_all_tablespaces(); dump_all_tablespaces();
dump_all_databases(); dump_all_databases();
} }
else if (argc > 1 && !opt_databases)
{
/* Only one database and selected table(s) */
if (!opt_alltspcs && !opt_notspcs)
dump_tablespaces_for_tables(*argv, (argv + 1), (argc -1));
dump_selected_tables(*argv, (argv + 1), (argc - 1));
}
else else
{ {
/* One or more databases, all tables */ // Check all arguments meet length condition. Currently database and table
if (!opt_alltspcs && !opt_notspcs) // names are limited to NAME_LEN bytes and stack-based buffers assumes
dump_tablespaces_for_databases(argv); // that escaped name will be not longer than NAME_LEN*2 + 2 bytes long.
dump_databases(argv); int argument;
for (argument= 0; argument < argc; argument++)
{
size_t argument_length= strlen(argv[argument]);
if (argument_length > NAME_LEN)
{
die(EX_CONSCHECK, "[ERROR] Argument '%s' is too long, it cannot be "
"name for any table or database.\n", argv[argument]);
}
}
if (argc > 1 && !opt_databases)
{
/* Only one database and selected table(s) */
if (!opt_alltspcs && !opt_notspcs)
dump_tablespaces_for_tables(*argv, (argv + 1), (argc - 1));
dump_selected_tables(*argv, (argv + 1), (argc - 1));
}
else
{
/* One or more databases, all tables */
if (!opt_alltspcs && !opt_notspcs)
dump_tablespaces_for_databases(argv);
dump_databases(argv);
}
} }
/* if --dump-slave , start the slave sql thread */ /* if --dump-slave , start the slave sql thread */
......
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