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
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to