Skip to content

Commit cf0aa77

Browse files
committed
Merge pull request #45 from hannob/master
Fix use after free error.
2 parents 90a5ab5 + 2e1cbd0 commit cf0aa77

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

Diff for: dbdimp.c

+4-5
Original file line numberDiff line numberDiff line change
@@ -2085,10 +2085,6 @@ static int my_login(pTHX_ SV* dbh, imp_dbh_t *imp_dbh)
20852085
}
20862086
result = mysql_dr_connect(dbh, imp_dbh->pmysql, mysql_socket, host, port, user,
20872087
password, dbname, imp_dbh) ? TRUE : FALSE;
2088-
if (fresh && !result) {
2089-
/* Prevent leaks, but do not free in case of a reconnect. See #97625 */
2090-
Safefree(imp_dbh->pmysql);
2091-
}
20922088
return result;
20932089
}
20942090

@@ -2142,9 +2138,12 @@ int dbd_db_login(SV* dbh, imp_dbh_t* imp_dbh, char* dbname, char* user,
21422138

21432139
if (!my_login(aTHX_ dbh, imp_dbh))
21442140
{
2145-
if(imp_dbh->pmysql)
2141+
if(imp_dbh->pmysql) {
21462142
do_error(dbh, mysql_errno(imp_dbh->pmysql),
21472143
mysql_error(imp_dbh->pmysql) ,mysql_sqlstate(imp_dbh->pmysql));
2144+
Safefree(imp_dbh->pmysql);
2145+
2146+
}
21482147
return FALSE;
21492148
}
21502149

0 commit comments

Comments
 (0)