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

 ID:                 54986
 Updated by:         fel...@php.net
 Reported by:        chandra dot madathil at theice dot com
 Summary:            Segmentation fault while executing queries with just
                     one column
 Status:             Feedback
 Type:               Bug
 Package:            ODBC related
 Operating System:   Red Hat Linux 5.5,64-bit
 PHP Version:        5.2.17
 Block user comment: N
 Private report:     N

 New Comment:

Instructions at http://bugs.php.net/bugs-getting-valgrind-log.php


Previous Comments:
------------------------------------------------------------------------
[2011-06-11 04:04:05] fel...@php.net

Can you run the test on cli using valgrind? If yes, please post the valgrind 
log.

------------------------------------------------------------------------
[2011-06-06 17:15:01] chandra dot madathil at theice dot com

Looks like this error is more widespread than I thought of initially. I am 
getting this error while freeing the resultset for some other programs too.



Were you able to reproduce this issue? Our production server migration is 
delayed due to this issue.

------------------------------------------------------------------------
[2011-06-03 16:49:21] chandra dot madathil at theice dot com

Description:
------------
When the select statement includes only one column, the script crashes with 
"zend_mm_heap corrupted" or segmentation fault errors. When we add a dummy 
column to the select statement, the script runs successfully. Looks like some 
data structure initialization bug.



For example, 



select name0 from COMPANY where name0 like 'A%'; -- errors out



select name0,1 from COMPANY where name0 like 'A%'; -- runs successfully

Test script:
---------------
<?php

$db_conn = odbc_connect('NZSQL','<username>','<password>') or alert("Could not 
connect: " . odbc_error());

echo "Connected successfully!\n";

$query="select name0 from COMPANY where name0 like 'A%' ";

echo "executing ...\n";

$result = odbc_exec($db_conn,$query);

echo "executed query ...\n";

if (!$result)   alert("Could not run query: " . odbc_error());

echo "fetching resultset ...\n";



while(odbc_fetch_array($result)) {

  $row0 = odbc_result($result, 1);

  echo "field1:$row0\n";

}

odbc_close($db_conn);

echo "Completed successfully\n";

function alert($errMsg) {

        fwrite(STDERR, "$errMsg\n"); exit(2);

}

?>

Expected result:
----------------
Connected successfully!

executing ...

executed query ...

fetching resultset ...

field1:<company names>

....

Completed successfully



Actual result:
--------------
Connected successfully!

executing ...

zend_mm_heap corrupted


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



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

Reply via email to