On 22/08/14 5:46 PM, Stuart Henderson wrote:
On 2014/08/22 22:06, Stuart Henderson wrote:
On 2014/08/19 17:15, Brad Smith wrote:
Here is a diff to make attempt #2 at switching to MariaDB.

Going through the various Makefile's I noticed bmf had a typo
with its WANTLIB entry for MySQL.

It seems that files moved between -server (on mysql) and -client (on mariadb),

         /usr/local/bin/msql2mysql (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/bin/mysql_find_rows (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/bin/mysql_waitpid (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/bin/mysqlaccess (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/man/cat1/msql2mysql.0 (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/man/cat1/mysql_find_rows.0 (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/man/cat1/mysql_waitpid.0 (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)
         /usr/local/man/cat1/mysqlaccess.0 (mysql-server-5.1.73p0v0 and 
mariadb-client-10.0.13)

untested but perhaps adding "@conflict mysql-server-*" to mariadb/pkg/PLIST-main
will let this update automatically..


Not specific to mariadb (similar things happen with the standalone mytop)
but noticed this while testing:

heh. you're right. If I run mytop numerous times it varies between
what you have below and just...

$ mytop
Segmentation fault (core dumped)

$ mytop
Cannot connect to MySQL server. Please check the:

   * database you specified "test" (default is "test")
   * username you specified "root" (default is "root")
   * password you specified "" (default is "")
   * hostname you specified "localhost" (default is "localhost")
   * port you specified "3306" (default is 3306)
   * socket you specified "/var/run/mysql/mysql.sock" (default is "")

The options my be specified on the command-line or in a ~/.mytop
config file. See the manual (perldoc mytop) for details.

Here's the exact error from DBI. It might help you debug:

ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß!
ßß!
  
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

.....

#0  0x0000065180fca864 in strlen (str=0x65276ff3897 'ß' <repeats 200 times>...) 
at /usr/src/lib/libc/string/strlen.c:39
39      /usr/src/lib/libc/string/strlen.c: No such file or directory.
         in /usr/src/lib/libc/string/strlen.c
(gdb) bt
#0  0x0000065180fca864 in strlen (str=0x65276ff3897 'ß' <repeats 200 times>...) 
at /usr/src/lib/libc/string/strlen.c:39
#1  0x00000651c30023cc in Perl_sv_setpv (sv=0x651857fa058, ptr=0x65276ff3897 'ß' 
<repeats 200 times>...) at /usr/src/gnu/usr.bin/perl/sv.c:4596
#2  0x00000651e426c0d5 in mysql_dr_error (h=Variable "h" is not available.
) at dbdimp.c:1441
#3  0x00000651e4270f01 in mysql_db_login (dbh=0x652687b47a8, 
imp_dbh=0x651962a4100,
     dbname=0x65243adb300 
"database=test;mysql_read_default_group=mytop;mysql_socket=/var/run/mysql/mysql.sock", 
user=Variable "user" is not available.
) at dbdimp.c:2096
#4  0x00000651e427ad40 in XS_DBD__mysql__db__login (cv=Variable "cv" is not 
available.
) at mysql.xsi:104
#5  0x00000651c303f09d in Perl_pp_entersub () at 
/usr/src/gnu/usr.bin/perl/pp_hot.c:2888
#6  0x00000651c30631f3 in Perl_runops_standard () at 
/usr/src/gnu/usr.bin/perl/run.c:42
#7  0x00000651c3033ade in Perl_call_sv (sv=0x651fd180250, flags=2) at 
perl.c:2751
#8  0x0000065194537326 in XS_DBI_dispatch () from 
/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/DBI/DBI.so
#9  0x00000651c303f09d in Perl_pp_entersub () at 
/usr/src/gnu/usr.bin/perl/pp_hot.c:2888
#10 0x00000651c30631f3 in Perl_runops_standard () at 
/usr/src/gnu/usr.bin/perl/run.c:42
#11 0x00000651c3034a3c in perl_run (my_perl=Variable "my_perl" is not available.
) at perl.c:2467
#12 0x0000064f80c014e3 in main () from /usr/bin/perl


(gdb) x/x str
0x65276ff3897:  0xdfdfdfdf


... so this looks like a use-after-free in DBD::MySQL error handling.





--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


Reply via email to