ID:               46798
 User updated by:  v dot orlov at ulab dot ru
 Reported By:      v dot orlov at ulab dot ru
-Status:           Feedback
+Status:           Open
 Bug Type:         MSSQL related
 Operating System: FreeBSD 6.3
 PHP Version:      5.2.7
 New Comment:

I make demo example, see below.
Some fields are NULL in result.

Strange: count($row) return 36, but fields in result only 18
I add condition ($j<22) to loop for less "Notices".

-----------------------
SAMPLE CODE:

<?
$base=mssql_connect("mssql", "web", "xxxxx");
mssql_select_db("ttttt");
$res = mssql_query("select top 1 * from Accounts where DateStart is not
null order by AccountID ");
print "<PRE>\n";
$num_res=mssql_num_rows($res);
for($i=0; $i<$num_res; $i++)
{
        $row=mssql_fetch_array($res);
        print $i." - ".$row[0]." count=".count($row)."\n";
        for ($j=0; $j<count($row) && $j<22; $j++)
          print " - [".$row[$j]."]";
        print "\n";
};
print "</PRE>\n";
mssql_close();
?>

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

OUTPUT


0 - 1659 count=36
 - [1659] - [20121] - [1] - [12000629] - [4] - [1] - [0] - [2005-02-01
00:00:00] - [] - [0.0000] - [0.0000] - [] - [] - [] - [] - [] - [] -
[2574]

Notice:  Undefined offset:  18 in /usr/local/www/infopin/test_sql3.php
on line 12

 - []

Notice:  Undefined offset:  19 in /usr/local/www/infopin/test_sql3.php
on line 12

 - []

Notice:  Undefined offset:  20 in /usr/local/www/infopin/test_sql3.php
on line 12

 - []

Notice:  Undefined offset:  21 in /usr/local/www/infopin/test_sql3.php
on line 12

 - []

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

APACHE LOG:

/usr/local/www/infopin/test_sql3.php(12) : Notice - Undefined offset: 
18
/usr/local/www/infopin/test_sql3.php(12) : Notice - Undefined offset: 
19
/usr/local/www/infopin/test_sql3.php(12) : Notice - Undefined offset: 
20
/usr/local/www/infopin/test_sql3.php(12) : Notice - Undefined offset: 
21
[Wed Dec 10 15:35:33 2008]  Script: 
'/usr/local/www/infopin/test_sql3.php'
---------------------------------------
/root/apache-install/php-5.2.6/Zend/zend_variables.h(35) : Block
0x0810ccd4 status:
/root/apache-install/php-5.2.6/Zend/zend_variables.c(36) : Actual
location (location was relayed)
Beginning:      OK (allocated on
/root/apache-install/php-5.2.6/ext/mssql/php_mssql.c:980, 5 bytes)
    Start:      OK
      End:      Overflown (magic=0x00000000 instead of 0xFBA28207)
                1 byte(s) overflown
---------------------------------------
[Wed Dec 10 15:35:33 2008]  Script: 
'/usr/local/www/infopin/test_sql3.php'
/root/apache-install/php-5.2.6/ext/mssql/php_mssql.c(980) :  Freeing
0x0810CCD4 (5 bytes), script=/usr/local/www/infopin/test_sql3.php
=== Total 1 memory leaks detected ===


Previous Comments:
------------------------------------------------------------------------

[2008-12-09 16:53:19] [EMAIL PROTECTED]

What is the value of NewsID when a query is executed, is it NULL?

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

[2008-12-08 17:49:33] v dot orlov at ulab dot ru

Description:
------------
When exec simple queries to 'MS SQL 2000'  I encounter warnings about
memory leaks in apache error log, see below.

Versions:
System FreeBSD 6.3  i386
freetds-0.64_2 (from ports)
apache 1.3.41
php 5.2.6 (5.2.7 has been removed from distribution)
suhosin patch 5.2.6-0.9.6.2

apache & php builded manually (not from ports)

Note: without suhosin patch call mssql_query crashing apache
(segfault).

Reproduce code:
---------------
./configure --with-mssql=/usr/local --with-unixODBC
--with-apxs=/www/bin/apxs --enable-session --with-iconv --with-mm
--with-pcre-regex   --with-pcre-dir --with-gd --with-png-dir
--prefix=/www --enable-debug

code like:
msql_connect("dbserver")
$res = mssql_query("select NewsID from News");


Expected result:
----------------
workable mssql module

Actual result:
--------------
error log with suhosin patch and --debug flag

/root/apache-install/php-5.2.6/Zend/zend_variables.h(35) : Block
0x08123528 status:
/root/apache-install/php-5.2.6/Zend/zend_variables.c(36) : Actual
location (location was relayed)
Beginning:      OK (allocated on
/root/apache-install/php-5.2.6/ext/mssql/php_mssql.c:980, 5 bytes)
    Start:      OK
      End:      Overflown (magic=0x00000000 instead of 0xFBA28207)
                1 byte(s) overflown
---------------------------------------
[Mon Dec  8 19:55:01 2008]  Script: 
'/usr/local/www/infopin/index.php'
---------------------------------------
/root/apache-install/php-5.2.6/Zend/zend_variables.h(35) : Block
0x08123498 status:
/root/apache-install/php-5.2.6/Zend/zend_variables.c(36) : Actual
location (location was relayed)
Beginning:      OK (allocated on
/root/apache-install/php-5.2.6/ext/mssql/php_mssql.c:980, 5 bytes)
    Start:      OK
      End:      Overflown (magic=0x00000000 instead of 0xFBA28207)
                1 byte(s) overflown
---------------------------------------
[Mon Dec  8 19:55:01 2008]  Script: 
'/usr/local/www/infopin/index.php'
/root/apache-install/php-5.2.6/ext/mssql/php_mssql.c(980) :  Freeing
0x0810F1B0 (5 bytes), script=/usr/local/www/infopin/index.php
Last leak repeated 16 times
=== Total 17 memory leaks detected ===


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


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

Reply via email to