Skip to content

Commit fa2374f

Browse files
committed
Fix segmentation fault when running test_ssl_cipher_in_option_file test
1 parent 2d1a626 commit fa2374f

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/mysql_capi.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,6 +1032,7 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
10321032
unsigned long client_flags= 0;
10331033
unsigned int port= 3306, tmp_uint;
10341034
unsigned int protocol= 0;
1035+
unsigned int ssl_mode;
10351036
my_bool abool;
10361037
MYSQL *res;
10371038

@@ -1118,15 +1119,17 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
11181119
#endif
11191120
#if MYSQL_VERSION_ID >= 50711
11201121
{
1121-
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, SSL_MODE_REQUIRED);
1122+
ssl_mode= SSL_MODE_REQUIRED;
1123+
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, &ssl_mode);
11221124
}
11231125
#endif
11241126

11251127
if (ssl_verify_cert && ssl_verify_cert == Py_True)
11261128
{
11271129
#if MYSQL_VERSION_ID >= 50711
11281130
{
1129-
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, SSL_MODE_VERIFY_IDENTITY);
1131+
ssl_mode= SSL_MODE_VERIFY_IDENTITY;
1132+
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, &ssl_mode);
11301133
}
11311134
#else
11321135
{
@@ -1147,7 +1150,8 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
11471150
#endif
11481151
#if MYSQL_VERSION_ID >= 50711
11491152
{
1150-
mysql_options(&self->session, MYSQL_OPT_SSL_ENFORCE, SSL_MODE_DISABLED);
1153+
ssl_mode= SSL_MODE_DISABLED;
1154+
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, &ssl_mode);
11511155
}
11521156
#endif
11531157
}
@@ -1173,6 +1177,10 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
11731177
client_flags= client_flags & ~CLIENT_CONNECT_WITH_DB;
11741178
}
11751179

1180+
if (client_flags & CLIENT_LOCAL_FILES) {
1181+
abool= 1;
1182+
mysql_options(&self->session, MYSQL_OPT_LOCAL_INFILE, (unsigned int*)&abool);
1183+
}
11761184

11771185
#ifdef PY3
11781186
res= mysql_real_connect(&self->session, host, user, password, database,

0 commit comments

Comments
 (0)