[unixODBC-support] Cannot use unixODBC 2.2.14 with MySQL ODBC connector 5.1
Nick Gorham
nick at lurcher.org
Wed May 27 17:02:01 BST 2009
Itachi Uchiha wrote:
> So it seems that I am not alone when dealing with this error. In fact
> I wonder is there anyone successful in using unixODBC 2.2.14 with
> MySQL ODBC Driver 5.1 yet?
>
I just took a look at this. The problem is that current versions of
unixODBC has fixed a long standing bug in isql, if the user name and
password wasn't supplied, isql passed them to the driver as a empty
string. This told the driver that there was no user name and password,
what isql should have done is pass a NULL for the user name and
password, this is the signal to the driver that the user name and
password has not been provided, so the driver can choose what to do,
either look in the ini file, or refuse to connect, or connect without a
user name/password.
It seems that (looking at the MySQL odbc driver code) the code assumes
that it will never be passed a NULL, so doesn't check, and proceeds to
use the value as a pointer, and so seg faults. The seg fault happens in
util/stringutil.c on line 95, and its called from driver/ansi.c in
SQLConnect, line 264.
You can see (and check this)
isql -v test
Segmentation fault
isql -v test name pass
[S1000][unixODBC][MySQL][ODBC 5.1 Driver]Access denied for user
'name'@'database' (using password: YES)
[ISQL]ERROR: Could not SQLConnect
Should be enough for upstream to provide a fix for the driver hopefully.
--
Nick
More information about the unixODBC-support
mailing list