Bug #51248 [Com]: Segmentation fault in mysql_fetch_array

From: Date: Fri, 27 Aug 2010 20:00:09 +0000
Subject: Bug #51248 [Com]: Segmentation fault in mysql_fetch_array
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-153857@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=51248&edit=1

 ID:                 51248
 Comment by:         php at group dot apple dot com
 Reported by:        mbeccati@php.net
 Summary:            Segmentation fault in mysql_fetch_array
 Status:             Assigned
 Type:               Bug
 Package:            MySQL related
 Operating System:   FreeBSD 6.2
 PHP Version:        5.3.2
 Assigned To:        mysql
 Block user comment: N

 New Comment:

This reproduces on Mac OS X, and appears to be a stack overflow issue. I
enabled 
stack overflow protection by adding "-g -fstack-protector-all" to the
CFLAGS passed 
to configure. (The problem does not reproduce when configured with
--enable-debug 
or -O0 instead of -Os.) In running this through gdb, the following line
in changes 
execute_data and may be the start of the corruption:
  zend_vm_execute.h:301			EX_T(opline->result.u.var).var.ptr_ptr = 
&EX_T(opline->result.u.var).var.ptr;

With the following sample script, the third pass through 
zend_do_fcall_common_helper_SPEC() demonstrates the crash:

<?php

$db_host = 'localhost';
$db_user = 'mysql_dba';
$db_password = 'admin';
$db_port = '3306';

$db_conn = mysql_connect($db_host.':'.$db_port, $db_user,
$db_password);

$db_result = mysql_query('select version() as version;', $db_conn);

$row = mysql_fetch_array($db_result, MYSQL_ASSOC); // this does NOT
work
// $row = mysql_fetch_assoc($db_result); // this works

printf("mysql version: %s\n", $row['version']);

mysql_free_result($db_result);

mysql_close($db_conn);

?>


Previous Comments:
------------------------------------------------------------------------
[2010-08-26 13:27:05] uw@php.net

Please try to provide a short test script, like its good style with
every other bug report.

------------------------------------------------------------------------
[2010-08-25 10:32:16] pajoye@php.net

Latest drupal (6+) versions work with 5.3 smoothly.

------------------------------------------------------------------------
[2010-08-25 10:22:29] mbeccati@php.net

@Chris: I understand that Drupal and PHP 5.3 might not live happily
together, but I'd expect errors, not segmentation faults.

@Andrey: Is there anything I can do to help understanding what happens
on when using libmysql?

------------------------------------------------------------------------
[2010-08-24 20:14:29] chris at chrischarlton dot us

Drupal 6.14 was the first 6.x to start supporting PHP 5.3, but mileage
will vary. 
It is highly recommended to run Drupal on a PHP 5.2.x server. Of course
Drupal will 
natively support PHP 5.3, there are just a few kinks being worked out.

------------------------------------------------------------------------
[2010-04-09 09:27:41] mbeccati@php.net

I've been able to test the drush script with a newly compiled 5.3.2 w/
mysqlnd and it appears that the segmentation fault is gone. Is there any
way I can trace what happens with libmysql?

i.e.

libmysql:
$ /usr/local/bin/php ~/bin/drush/drush.php dis twitter
The following projects will be disabled: twitter
Do you really want to continue? (y/n): y
Segmentation fault: 11 (core dumped)

mysqlnd:
$ /array1/compile/php-5.3.2-apache/sapi/cli/php -d
mysqlnd.debug="t:o,/tmp/mysqlnd.trace" ~/bin/drush/drush.php dis
twitter
The following projects will be disabled: twitter
Do you really want to continue? (y/n): y
twitter was disabled successfully.                                  
[ok]

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=51248


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51248&edit=1


Thread (28 messages)

« previous php.bugs (#153857) next »