Summary: | dev-db/mysql-connector-c-6.1.11-r1 - mysqlclient segfault when .mylogin.cnf exists | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Blakawk <blakawk> |
Component: | Current packages | Assignee: | Gentoo Linux MySQL bugs team <mysql-bugs> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | hydrapolic |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Proposed patch to fix CIPHER CTX initialization |
Description
Blakawk
2018-10-16 19:51:49 UTC
Emerge --emptytree world and rebooting did not solve the issue. Still crashing on getent passwd when a ~/.mylogin.cnf exists, even if it was created by only issuing "mysql_config_editor set". With following test program, I managed to pinpoint the root cause of this issue using gdb: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff787e3b1 in EVP_CipherInit_ex () from /usr/lib64/libcrypto.so.1.1 (gdb) bt #0 0x00007ffff787e3b1 in EVP_CipherInit_ex () from /usr/lib64/libcrypto.so.1.1 #1 0x00007ffff7c785da in my_aes_decrypt (source=source@entry=0x7fffffffa540 "X\275Yٙ\024\356\064J\307\361\245\301\311\325i", source_length=source_length@entry=16, dest=dest@entry=0x7fffffff8540 "!includedir /etc/mysql/mysql.d", key=key@entry=0x7ffff7fc4200 <mysql_file_getline(char*, int, st_mysql_file*, char)::my_key> "\035\036\006\006\023\v\003\021\036\002\037\v\027\b\020\021\016\f\006\020", key_length=key_length@entry=20, mode=mode@entry=my_aes_128_ecb, iv=0x0, padding=true) at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/mysys_ssl/my_aes_openssl.cc:191 #2 0x00007ffff7c74788 in mysql_file_getline (size=4095, is_login_file=1 '\001', file=0x55555556c1d0, str=0x7fffffff8540 "!includedir /etc/mysql/mysql.d") at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/mysys_ssl/my_default.cc:1193 #3 search_default_file_with_ext (opt_handler=0x7ffff7c73e20 <handle_default_option(void*, char const*, char const*)>, handler_ctx=0x7fffffffc750, dir=<optimized out>, ext=<optimized out>, config_file=<optimized out>, recursion_level=0, is_login_file=<optimized out>) at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/mysys_ssl/my_default.cc:917 #4 0x00007ffff7c750be in search_default_file (opt_handler=opt_handler@entry=0x7ffff7c73e20 <handle_default_option(void*, char const*, char const*)>, handler_ctx=handler_ctx@entry=0x7fffffffc750, dir=dir@entry=0x0, config_file=config_file@entry=0x7fffffffcb30 "/root/.mylogin.cnf", is_login_file=is_login_file@entry=1 '\001') at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/mysys_ssl/my_default.cc:785 #5 0x00007ffff7c754ac in my_search_option_files (conf_file=conf_file@entry=0x7fffffffcb30 "/root/.mylogin.cnf", argc=argc@entry=0x7fffffffcd94, argv=argv@entry=0x7fffffffcd98, args_used=args_used@entry=0x7fffffffc74c, func=func@entry=0x7ffff7c73e20 <handle_default_option(void*, char const*, char const*)>, func_ctx=func_ctx@entry=0x7fffffffc750, default_directories=0x55555556bff0, is_login_file=1 '\001', found_no_defaults=0 '\000') at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/mysys_ssl/my_default.cc:389 #6 0x00007ffff7c75c12 in my_load_defaults (conf_file=conf_file@entry=0x7ffff7c803a6 "my", groups=<optimized out>, groups@entry=0x7fffffffcdd0, argc=argc@entry=0x7fffffffcd94, argv=argv@entry=0x7fffffffcd98, default_directories=default_directories@entry=0x0) at /usr/include/bits/stdio2.h:107 #7 0x00007ffff7c38968 in mysql_read_default_options (options=options@entry=0x7fffffffdb48, filename=0x7ffff7c803a6 "my", group=0x55555556be70 "test") at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/sql-common/client.c:1802 #8 0x00007ffff7c3fdbe in mysql_real_connect (mysql=0x7fffffffd7b0, host=0x555555556041 "localhost", user=0x555555556039 "__nss__", passwd=0x555555556018 "ada73f4b1a75daa49ad65c6547090463", db=0x55555555600d "soeasyto", port=0, unix_socket=0x55555555604b "/var/run/mysqld/mysqld.sock", client_flag=0) at /usr/src/debug/dev-db/mysql-connector-c-6.1.11-r2/mysql-connector-c-6.1.11-src/sql-common/client.c:4218 #9 0x0000555555555201 in main (argc=1, argv=0x7fffffffdda8) at test.c:8 Test file: #include <mysql.h> int main(int argc, char* argv[]) { MYSQL db; mysql_init(&db); mysql_options(&db, MYSQL_READ_DEFAULT_GROUP, "test"); // credentials replaced with *** for anonymity, replace them with valid // ones from your server mysql_real_connect(&db, "***", "***", "***", "***", 0, "***", 0); mysql_close(&db); return 0; } Created attachment 598858 [details, diff]
Proposed patch to fix CIPHER CTX initialization
|