Public bug reported:
Note: This was originally reported as
https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1877504, but
that bug contains discussions about multiple separate issues, which are
not fully resolved by this fix.
[Impact]
libmysqlclient21 does not by default include any charset files in Ubuntu, but
it will use charset files found in /usr/share/mysql/
If the usr/share/mysql/Index.xml file contains a charset definition with a
certain combination of collations, it can cause a segmentation fault in
libmysqlclient21. The default charset files in MySQL do not cause this problem,
but those from MariaDB do. So a user running e.g. mythtv (which is built with
libmysqlclient21) with MariaDB as the underlying server package can encounter
crashes.
The segmentation fault does not happen with 8.0.19, so this is a regression
from earlier versions.
[Test Case]
* Install libmysqlclient21, libmysqlclient-dev and mysql-server
* Connect to the database with "sudo mysql" and run the attached init.sql (just
creates a test user with access to a test database)
* Compile attached mysql_test.c (file has full gcc command needed)
* Run the mysql_test program. It will output a few lines (contents of test
table)
* Now replace /usr/share/mysql/charsets/Index.xml with the attached one
* Run the mysql_test program. It will produce a segmentation fault
[Regression Potential]
The patch itself only blocks out a single function call on a pointer if
that pointer is null, but it doesn't fix the underlying issue of the
charset parser picking up unexpected definition files (but this problem
is present in versions prior to 8.0.20 as well)
** Affects: mysql-8.0 (Ubuntu)
Importance: Undecided
Status: New
** Description changed:
Note: This was originally reported as
https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1877504, but
that bug contains discussions about multiple separate issues, which are
not fully resolved by this fix.
[Impact]
libmysqlclient21 does not by default include any charset files in Ubuntu, but
it will use charset files found in /usr/share/mysql/
If the usr/share/mysql/Index.xml file contains a charset definition with a
certain combination of collations, it can cause a segmentation fault in
libmysqlclient21. The default charset files in MySQL do not cause this problem,
but those from MariaDB do. So a user running e.g. mythtv (which is built with
libmysqlclient21) with MariaDB as the underlying server package can encounter
crashes.
+ The segmentation fault does not happen with 8.0.19, so this is a regression
from earlier versions.
[Test Case]
* Install libmysqlclient21, libmysqlclient-dev and mysql-server
* Connect to the database with "sudo mysql" and run the attached init.sql
(just creates a test user with access to a test database)
* Compile attached mysql_test.c (file has full gcc command needed)
* Run the mysql_test program. It will output a few lines (contents of test
table)
* Now replace /usr/share/mysql/charsets/Index.xml with the attached one
* Run the mysql_test program. It will produce a segmentation fault
[Regression Potential]
The patch itself only blocks out a single function call on a pointer if
that pointer is null, but it doesn't fix the underlying issue of the
charset parser picking up unexpected definition files (but this problem
is present in versions prior to 8.0.20 as well)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1884809
Title:
libmysqlclient21 crashes if certain collation definitions are found in
MySQL's sharedir
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1884809/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs