php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10828 sometimes get_extension_funcs() kills PHP
Submitted: 2001-05-12 08:32 UTC Modified: 2005-02-01 23:01 UTC
From: jo at feuersee dot de Assigned:
Status: Closed Package: Scripting Engine problem
PHP Version: 4.0.6 OS: Linux 2.4.5
Private report: No CVE-ID: None
 [2001-05-12 08:32 UTC] jo at feuersee dot de
I tried to print out all available PHP functions using 
get_loaded_extensions() and get_extension_funcs():
<?php
print("<h3>PHP" . phpversion() . "</h3>\n");
print("<ol>\n");
$ext = get_loaded_extensions();
sort($ext);
for($i = 0; $i < count($ext); $i++) {
	$name = $ext[$i];
	print("<li><b>$name</b>:</li>\n<ol>\n");
	$func = get_extension_funcs($name);
	sort($func);
	for($j = 0; $j < count($func); $j++) {
		
print("<li><code>$func[$j]()</code></li>\n");
	}
	print("</ol>\n");
}
print("</ol>\n");
?>
and this worked well with PHP4.0.3pl1.
However, since PHP4.0.4pl1/5, the Apache (1.3.19) 
subprocess dies:
[Sat May 12 14:26:49 2001] [notice] child pid 746 exit 
signal Segmentation fault (11)
When commenting out the get_extension_funcs() call, all is 
well. Even replacing the argument to a const (eg. 
get_extension_funcs("exif") ) works.
I tried to reproduce the error in a more simple way, but 
failed:
<?php
$name = "exif";
print_r(get_extension_funcs($name));
?>
works as expected. Still the script above fails.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-05-14 08:37 UTC] sniper@php.net
Your script works for me just fine with PHP 4.0.6-dev.
Please try latest snapshot from http://snaps.php.net/

--Jani



 [2001-06-24 10:25 UTC] jo at feuersee dot de
Sorry, but he same in PHP4.0.6

 [2001-06-24 11:32 UTC] sniper@php.net
Does it crash? Provide a GDB backtrace then.
(reconfigure/compile PHP first with --enable-debug)

Remember to delete config.cache before configure.
And do 'make clean' after.

--Jani

 [2001-06-24 16:46 UTC] jo at feuersee dot de
Ok, I spend a sunday with wounderful weather about this 
and finally isolated the bug:
get_loaded_extensions() returns an extension called 
"Session MM" when available.
Feeding this string to get_extension_funcs() kills the 
process. So the simpliest way to reprodruce the bug is:
<?php
	$foo = get_extension_funcs("Session MM");
?>
Most probably this works only when the extension is 
available, that would explain why some people had no 
problem running the example.
HTH, Jo

 [2001-06-26 14:29 UTC] sniper@php.net
Thanks for excellent information. This is now fixed in CVS.

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri May 10 23:01:30 2024 UTC