mirror of
https://github.com/MariaDB/server.git
synced 2026-05-02 05:05:33 +02:00
Bug#30671
"ALTER SERVER can cause server to crash"
While retrieving values, it would erronously set the socket value
to NULL and attempt to use it in strcmp().
Ensure it is correctly set to "" so that strcmp may not crash.
mysql-test/r/federated_server.result:
results for bug30671
fix inconsistent result
mysql-test/t/federated_server.test:
surplus semicolon
test for bug30671
sql/sql_servers.cc:
bug30671
inside function get_server_from_table_to_cache()
server->socket was being set to NULL instead of empty string
This commit is contained in:
parent
be9e52135f
commit
aea5007d64
3 changed files with 24 additions and 4 deletions
|
|
@ -289,7 +289,7 @@ get_server_from_table_to_cache(TABLE *table)
|
|||
{
|
||||
/* alloc a server struct */
|
||||
char *ptr;
|
||||
char *blank= (char*)"";
|
||||
char * const blank= (char*)"";
|
||||
FOREIGN_SERVER *server= (FOREIGN_SERVER *)alloc_root(&mem,
|
||||
sizeof(FOREIGN_SERVER));
|
||||
DBUG_ENTER("get_server_from_table_to_cache");
|
||||
|
|
@ -312,7 +312,7 @@ get_server_from_table_to_cache(TABLE *table)
|
|||
server->port= server->sport ? atoi(server->sport) : 0;
|
||||
|
||||
ptr= get_field(&mem, table->field[6]);
|
||||
server->socket= ptr && strlen(ptr) ? ptr : NULL;
|
||||
server->socket= ptr && strlen(ptr) ? ptr : blank;
|
||||
ptr= get_field(&mem, table->field[7]);
|
||||
server->scheme= ptr ? ptr : blank;
|
||||
ptr= get_field(&mem, table->field[8]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue