>Description:

When using groups in 3.23.49, client dumps core.
This bug sounds to be new (it does not appear in 3.23.41)

>How-To-Repeat:

Just compile a little C client (you can also dump cores with DBI perl
module) :

% cat bug.c
#include <mysql/mysql.h>
#include <stdio.h>

int main(void) {
  MYSQL mysql;
  mysql_init(&mysql);
  mysql_options(&mysql, MYSQL_READ_DEFAULT_GROUP, "bug");
  mysql_real_connect(&mysql, NULL, NULL, NULL, NULL, 0, NULL, 0);
  return 0;
}
% cat $HOME/.my.cnf
[bug]
        host=foobar
% cc -I/usr/local/include -g bug.c -o bug -L/usr/local/lib/mysql -lmysqlclient
% gdb bug
(gdb) run
Starting program: /home/lwa/tmp/mbug/bug 

Program received signal SIGSEGV, Segmentation fault.
strcend (s=0x804efff "-" <Error reading address 0x804f000: Bad address>, c=95)
    at strcend.c:51
51           if (*s == (char) c) return (char*) s;
(gdb) where
#0  strcend (s=0x804efff "-" <Error reading address 0x804f000: Bad address>, 
    c=95) at strcend.c:51
#1  0x280700f6 in mysql_read_default_options (options=0xbfbff400, 
    filename=0x28081442 "my", group=0x804b030 "bug") at libmysql.c:715
#2  0x28070a64 in mysql_real_connect (mysql=0xbfbff270, host=0x0, user=0x0, 
    passwd=0x0, db=0x0, port=0, unix_socket=0x0, client_flag=0)
    at libmysql.c:1189
#3  0x80485e2 in main () at bug.c:8
#4  0x80484c3 in _start ()
(gdb) print (char *)0x804d000
$1 = 0x804d000 "[bug]\n\thost=foobar\n", '-' <repeats 181 times>...
(gdb) 


>Fix:

After the core, the memory is full of '-'.

I suspect the following newly added lines in 
libmysql/libmysql.c:mysql_read_default_options() :

        /* Change all '_' in variable name to '-' */
        for (end= *option ; (end= strcend(end,'_')) ; )
          *end= '-';


>Submitter-Id:  <submitter ID>
>Originator:    Laurent Wacrenier
>Organization:  France Teaser
>MySQL support: none
>Synopsis:      core dump in clients using groups
>Severity:      critical
>Priority:      medium
>Category:      mysql
>Class:         sw-bug
>Release:       mysql-3.23.49 (FreeBSD port: mysql-server-3.23.49)

>Environment:

System: FreeBSD victor.teaser.fr 5.0-CURRENT FreeBSD 5.0-CURRENT #3: Fri Feb  1 
15:12:56 CET 2002     [EMAIL PROTECTED]:/usr/src/sys/i386/compile/VICTOR  i386


Some paths:  /usr/bin/perl /usr/bin/make /usr/local/bin/gmake /usr/bin/gcc /usr/bin/cc
GCC: Using builtin specs.
gcc version 2.95.3 20010315 (release)
Compilation info: CC='cc'  CFLAGS='-O9 -mpentiumpro -pipe -g -march=pentiumpro'  
CXX='cc'  CXXFLAGS='-O9 -mpentiumpro -pipe -g -march=pentiumpro -felide-constructors 
-fno-rtti -fno-exceptions'  LDFLAGS=''
LIBC: 
-r--r--r--  1 root  wheel  1463360  1 fév 14:58 /usr/lib/libc.a
lrwxr-xr-x  1 root  wheel  9  1 fév 14:58 /usr/lib/libc.so -> libc.so.5
-r--r--r--  1 root  wheel  732000  1 fév 14:58 /usr/lib/libc.so.5
Configure command: ./configure  --localstatedir=/var/db/mysql --without-perl 
--without-debug --without-readline --without-bench --with-mit-threads=no 
--with-libwrap --with-low-memory '--with-comment=FreeBSD port: mysql-server-3.23.49' 
--enable-assembler --with-berkeley-db --with-innodb --prefix=/usr/local 
i386-portbld-freebsd5.0


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to