php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #56381 FANN segfaults on PHP5
Submitted: 2005-04-23 15:27 UTC Modified: 2005-05-01 14:27 UTC
From: kangur at polcom dot net Assigned: enemerson (profile)
Status: Closed Package: fann (PECL)
PHP Version: 5.0.3 OS: Gentoo Linux 2004.3 kernel 2.6
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: kangur at polcom dot net
New email:
PHP Version: OS:

 

 [2005-04-23 15:27 UTC] kangur at polcom dot net
Description:
------------
Instalation went fine:

# pear install http://pecl.php.net/get/fann
downloading fann-0.1.1.tgz ...
Starting to download fann-0.1.1.tgz (9,509 bytes)
.....done: 9,509 bytes
3 source files, building
running: phpize
Configuring for:
PHP Api Version:         20031224
Zend Module Api No:      20041030
Zend Extension Api No:   220040412
building in /var/tmp/pear-build-root/fann-0.1.1
running: /tmp/tmp1N7P9a/fann-0.1.1/configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether gcc and cc understand -c and -o together... yes
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM
checking for PHP extension directory... /usr/lib/php/extensions/no-debug-non-zts-20041030
checking for re2c... exit 0;
checking for gawk... gawk
checking for fann support... yes, shared
checking for fann files in default path... found in /usr
checking for fann_get_MSE in -lfann... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /usr/i686-pc-linux-gnu/bin/ld
checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for /usr/i686-pc-linux-gnu/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for g77... g77
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether g77 accepts -g... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag  works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/i686-pc-linux-gnu/bin/ld
checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for g77 option to produce PIC... -fPIC
checking if g77 PIC flag -fPIC works... yes
checking if g77 supports -c -o file.o... yes
checking whether the g77 linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
/tmp/tmp1N7P9a/fann-0.1.1/configure: line 19579: test: too many arguments
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/sh /var/tmp/pear-build-root/fann-0.1.1/libtool --mode=compile gcc  -I. -I/tmp/tmp1N7P9a/fann-0.1.1 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/fann-0.1.1/include -I/var/tmp/pear-build-root/fann-0.1.1/main -I/tmp/tmp1N7P9a/fann-0.1.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM  -DHAVE_CONFIG_H  -g -O2  -prefer-pic -c /tmp/tmp1N7P9a/fann-0.1.1/fann.c -o fann.lo
mkdir .libs
 gcc -I. -I/tmp/tmp1N7P9a/fann-0.1.1 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/fann-0.1.1/include -I/var/tmp/pear-build-root/fann-0.1.1/main -I/tmp/tmp1N7P9a/fann-0.1.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM -DHAVE_CONFIG_H -g -O2 -c /tmp/tmp1N7P9a/fann-0.1.1/fann.c  -fPIC -DPIC -o .libs/fann.o
/bin/sh /var/tmp/pear-build-root/fann-0.1.1/libtool --mode=link gcc -DPHP_ATOM_INC -I/var/tmp/pear-build-root/fann-0.1.1/include -I/var/tmp/pear-build-root/fann-0.1.1/main -I/tmp/tmp1N7P9a/fann-0.1.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM  -DHAVE_CONFIG_H  -g -O2   -o fann.la -export-dynamic -avoid-version -prefer-pic -module -rpath /var/tmp/pear-build-root/fann-0.1.1/modules  fann.lo -lfann
gcc -shared  .libs/fann.o  /usr/lib/libfann.so  -Wl,-soname -Wl,fann.so -o .libs/fann.so
creating fann.la
(cd .libs && rm -f fann.la && ln -s ../fann.la fann.la)
/bin/sh /var/tmp/pear-build-root/fann-0.1.1/libtool --mode=install cp ./fann.la /var/tmp/pear-build-root/fann-0.1.1/modules
cp ./.libs/fann.so /var/tmp/pear-build-root/fann-0.1.1/modules/fann.so
cp ./.libs/fann.lai /var/tmp/pear-build-root/fann-0.1.1/modules/fann.la
PATH="$PATH:/sbin" ldconfig -n /var/tmp/pear-build-root/fann-0.1.1/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /var/tmp/pear-build-root/fann-0.1.1/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

fann.so copied to /tmp/tmp1N7P9a/fann-0.1.1/fann.so

Build process completed successfully
Installing 'fann.so' at ext_dir (/usr/lib/php/extensions/no-debug-non-zts-20041030/fann.so)
install ok: fann 0.1.1

Then I get:

Warning: Method fann::__set() must take exactly 2 arguments in Unknown on line 0

Warning: Method fann::__get() must take exactly 1 argument in Unknown on line 0
Naruszenie ochrony pamięci

when I try to
dl('fann.so');
$ann = fann_create(array(2, 4, 1), 1.0, 0.5);

Strace:

futex(0x4163e1ac, FUTEX_WAKE, 2147483647) = 0
open("/usr/lib/php/extensions/no-debug-non-zts-20041030/fann.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0  \0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=89130, ...}) = 0
mmap2(NULL, 22148, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xa7a0f000
mmap2(0xa7a14000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5) = 0xa7a14000
close(3)                                = 0
open("/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libfann.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/libfann.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/libfann.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=137357, ...}) = 0
mmap2(NULL, 137357, PROT_READ, MAP_PRIVATE, 3, 0) = 0xa79c7000
close(3)                                = 0
open("/usr/lib/libfann.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000%\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=41101, ...}) = 0
mmap2(NULL, 34524, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xa79be000
mmap2(0xa79c6000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7) = 0xa79c6000
close(3)                                = 0
munmap(0xa79c7000, 137357)              = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa79e8000
write(1, "\n", 1
)                       = 1
write(1, "Warning: Method fann::__set() mu"..., 81Warning: Method fann::__set() must take exactly 2 arguments in Unknown on line 0
) = 81
write(1, "\nWarning: Method fann::__get() m"..., 81
Warning: Method fann::__get() must take exactly 1 argument in Unknown on line 0
) = 81
open("/dev/urandom", O_RDONLY)          = 3
fstat64(3, {st_mode=S_IFCHR|0444, st_rdev=makedev(1, 9), ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xafffc8f4) = -1 EINVAL (Invalid argument)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa79e7000
read(3, "\300W\210\242M*\325\17\21\316\223\272@\245\32\30\v\342"..., 4096) = 4096
close(3)                                = 0
munmap(0xa79e7000, 4096)                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

GDB output:
$ gdb php ./core
GNU gdb 6.1.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".


warning: core file may not match specified executable file.
Core was generated by `/usr/bin/php ./conv.php'.
Program terminated with signal 11, Segmentation fault.

warning: current_sos: Can't read pathname for load map: Błąd wejścia/wyjścia

Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /usr/lib/libssl.so.0.9.7...done.
Loaded symbols for /usr/lib/libssl.so.0.9.7
Reading symbols from /usr/lib/libcrypto.so.0.9.7...done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.7
Reading symbols from /usr/lib/libexslt.so.0...done.
Loaded symbols for /usr/lib/libexslt.so.0
Reading symbols from /usr/lib/libgcrypt.so.11...done.
Loaded symbols for /usr/lib/libgcrypt.so.11
Reading symbols from /usr/lib/libgpg-error.so.0...done.
Loaded symbols for /usr/lib/libgpg-error.so.0
Reading symbols from /lib/libz.so.1...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /usr/lib/libexpat.so.0...done.
Loaded symbols for /usr/lib/libexpat.so.0
Reading symbols from /usr/lib/libtidy-0.99.so.0...done.
Loaded symbols for /usr/lib/libtidy-0.99.so.0
Reading symbols from /lib/libhistory.so.4...done.
Loaded symbols for /lib/libhistory.so.4
Reading symbols from /lib/libreadline.so.4...done.
Loaded symbols for /lib/libreadline.so.4
Reading symbols from /lib/libncursesw.so.5...done.
Loaded symbols for /lib/libncursesw.so.5
Reading symbols from /usr/lib/libpspell.so.15...done.
Loaded symbols for /usr/lib/libpspell.so.15
Reading symbols from /usr/lib/libaspell.so.15...done.
Loaded symbols for /usr/lib/libaspell.so.15
Reading symbols from /usr/lib/libgpm.so.1...done.
Loaded symbols for /usr/lib/libgpm.so.1
Reading symbols from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libstdc++.so.5...done.
Loaded symbols for /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libstdc++.so.5
Reading symbols from /usr/lib/libpq.so.3...done.
Loaded symbols for /usr/lib/libpq.so.3
Reading symbols from /usr/lib/libpanelw.so.5...done.
Loaded symbols for /usr/lib/libpanelw.so.5
Reading symbols from /usr/lib/libmysqlclient.so.12...done.
Loaded symbols for /usr/lib/libmysqlclient.so.12
Reading symbols from /usr/lib/libming.so...done.
Loaded symbols for /usr/lib/libming.so
Reading symbols from /usr/lib/libmhash.so.2...done.
Loaded symbols for /usr/lib/libmhash.so.2
Reading symbols from /usr/lib/libmcrypt.so.4...done.
Loaded symbols for /usr/lib/libmcrypt.so.4
Reading symbols from /usr/lib/libltdl.so.3...done.
Loaded symbols for /usr/lib/libltdl.so.3
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /usr/lib/libldap.so.2...done.
Loaded symbols for /usr/lib/libldap.so.2
Reading symbols from /usr/lib/libsasl2.so.2...done.
Loaded symbols for /usr/lib/libsasl2.so.2
Reading symbols from /usr/lib/liblber.so.2...done.
Loaded symbols for /usr/lib/liblber.so.2
Reading symbols from /lib/libpam.so.0...done.
Loaded symbols for /lib/libpam.so.0
Reading symbols from /usr/lib/libgmp.so.3...done.
Loaded symbols for /usr/lib/libgmp.so.3
Reading symbols from /usr/X11R6/lib/libX11.so.6...done.
Loaded symbols for /usr/X11R6/lib/libX11.so.6
Reading symbols from /usr/X11R6/lib/libXpm.so.4...done.
Loaded symbols for /usr/X11R6/lib/libXpm.so.4
Reading symbols from /usr/lib/libpng.so.3...done.
Loaded symbols for /usr/lib/libpng.so.3
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/lib/libfam.so.0...done.
Loaded symbols for /usr/lib/libfam.so.0
Reading symbols from /usr/lib/libdb-4.0.so...done.
Loaded symbols for /usr/lib/libdb-4.0.so
Reading symbols from /usr/lib/libgdbm.so.2...done.
Loaded symbols for /usr/lib/libgdbm.so.2
Reading symbols from /usr/lib/libbz2.so.1.0...done.
Loaded symbols for /usr/lib/libbz2.so.1.0
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /usr/lib/libcurl.so.2...done.
Loaded symbols for /usr/lib/libcurl.so.2
Reading symbols from /usr/lib/libodbc.so.1...done.
Loaded symbols for /usr/lib/libodbc.so.1
Reading symbols from /usr/lib/libnetsnmp.so.5...done.
Loaded symbols for /usr/lib/libnetsnmp.so.5
Reading symbols from /usr/lib/libelf.so.1...done.
Loaded symbols for /usr/lib/libelf.so.1
Reading symbols from /usr/lib/libxslt.so.1...done.
Loaded symbols for /usr/lib/libxslt.so.1
Reading symbols from /usr/lib/libxml2.so.2...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /lib/libpthread.so.0...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcc_s.so.1...done.
Loaded symbols for /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcc_s.so.1
Reading symbols from /usr/X11R6/lib/libXext.so.6...done.
Loaded symbols for /usr/X11R6/lib/libXext.so.6
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /usr/lib/php/extensions/no-debug-non-zts-20041030/fann.so...done.
Loaded symbols for /usr/lib/php/extensions/no-debug-non-zts-20041030/fann.so
Reading symbols from /usr/lib/libfann.so.1...done.
Loaded symbols for /usr/lib/libfann.so.1
#0  0x0823e6c3 in _efree ()
(gdb) bt
#0  0x0823e6c3 in _efree ()
#1  0x0824e652 in _zval_dtor ()
#2  0x08625e0c in ?? ()
#3  0x0824729e in _zval_ptr_dtor ()
#4  0x00000000 in ?? ()
#5  0x082482f3 in zend_call_function ()
#6  0x00000000 in ?? ()
#7  0x00000000 in ?? ()
#8  0x0863dfd8 in ?? ()
#9  0x00000000 in ?? ()
#10 0x41015a5c in ?? () from /lib/ld-linux.so.2
#11 0x086478c0 in ?? ()
#12 0x00000000 in ?? ()
#13 0xafffca60 in ?? ()
#14 0xafffce6c in ?? ()
#15 0xa79befd2 in ?? () from /usr/lib/libfann.so.1
#16 0x00078844 in ?? ()
#17 0x00000002 in ?? ()
#18 0xafffca1c in ?? ()
#19 0x41015de0 in ?? ()
#20 0x00000030 in ?? ()
#21 0x08647a50 in ?? ()
#22 0x00000001 in ?? ()
#23 0x0863bb5c in ?? ()
#24 0x08625400 in ?? ()
#25 0x0863e2f0 in ?? ()
#26 0x084fef54 in __JCR_LIST__ ()
#27 0x0863254c in ?? ()
#28 0x08632554 in ?? ()
#29 0x0851cb94 in compiler_globals ()
#30 0x08647c58 in ?? ()
#31 0x0863254c in ?? ()
#32 0x086324bc in ?? ()
#33 0x0863f6dc in ?? ()
#34 0xafffcc00 in ?? ()
#35 0x0851cb00 in compiler_globals ()
#36 0x00000000 in ?? ()
#37 0xafffce68 in ?? ()
#38 0x41015a5c in ?? () from /lib/ld-linux.so.2
#39 0x084fef54 in __JCR_LIST__ ()
#40 0xafffcacc in ?? ()
#41 0xafffca98 in ?? ()
#42 0xafffcb14 in ?? ()
#43 0x0824773c in call_user_function_ex ()
---Type <return> to continue, or q <return> to quit---
#44 0x00000000 in ?? ()
#45 0x00000024 in ?? ()
#46 0x0863dff4 in ?? ()
#47 0xafffcaa4 in ?? ()
#48 0x00000000 in ?? ()
#49 0xafffca98 in ?? ()
#50 0x00000002 in ?? ()
#51 0xafffca9c in ?? ()
#52 0xafffcac4 in ?? ()
#53 0xafffca00 in ?? ()
#54 0x41613480 in __after_morecore_hook () from /lib/libc.so.6
#55 0x00000000 in ?? ()
#56 0x41563821 in mallopt () from /lib/libc.so.6
Previous frame inner to this frame (corrupt stack?)
(gdb) disassemble
Dump of assembler code for function _efree:
0x0823e64a <_efree+0>:  push   %ebp
0x0823e64b <_efree+1>:  push   %edi
0x0823e64c <_efree+2>:  push   %esi
0x0823e64d <_efree+3>:  push   %ebx
0x0823e64e <_efree+4>:  mov    0x14(%esp),%edi
0x0823e652 <_efree+8>:  call   0x80a3b39 <__i686.get_pc_thunk.bx>
0x0823e657 <_efree+13>: add    $0x2c08fd,%ebx
0x0823e65d <_efree+19>: mov    0xfffffffc(%edi),%eax
0x0823e660 <_efree+22>: lea    0xfffffff4(%edi),%esi
0x0823e663 <_efree+25>: and    $0x7fffffff,%eax
0x0823e668 <_efree+30>: add    $0x7,%eax
0x0823e66b <_efree+33>: shr    $0x3,%eax
0x0823e66e <_efree+36>: cmp    $0xa,%eax
0x0823e671 <_efree+39>: ja     0x823e6a6 <_efree+92>
0x0823e673 <_efree+41>: mov    0x1dd4(%ebx),%ebp
0x0823e679 <_efree+47>: add    $0x4,%ebp
0x0823e67c <_efree+50>: lea    0x0(%ebp,%eax,4),%ecx
0x0823e680 <_efree+54>: mov    0x2c00(%ecx),%edx
0x0823e686 <_efree+60>: cmp    $0xff,%edx
0x0823e68c <_efree+66>: ja     0x823e6a6 <_efree+92>
0x0823e68e <_efree+68>: shl    $0x8,%eax
0x0823e691 <_efree+71>: add    %edx,%eax
0x0823e693 <_efree+73>: mov    %esi,0x0(%ebp,%eax,4)
0x0823e697 <_efree+77>: lea    0x1(%edx),%esi
0x0823e69a <_efree+80>: mov    %esi,0x2c00(%ecx)
0x0823e6a0 <_efree+86>: orb    $0x80,0xffffffff(%edi)
0x0823e6a4 <_efree+90>: jmp    0x823e6e6 <_efree+156>
0x0823e6a6 <_efree+92>: mov    0x1698(%ebx),%edx
0x0823e6ac <_efree+98>: mov    (%edx),%eax
0x0823e6ae <_efree+100>:        test   %eax,%eax
0x0823e6b0 <_efree+102>:        je     0x823e6b4 <_efree+106>
0x0823e6b2 <_efree+104>:        call   *%eax
0x0823e6b4 <_efree+106>:        mov    0x1dd4(%ebx),%eax
0x0823e6ba <_efree+112>:        mov    (%esi),%edx
0x0823e6bc <_efree+114>:        cmp    (%eax),%esi
0x0823e6be <_efree+116>:        je     0x823e6c3 <_efree+121>
0x0823e6c0 <_efree+118>:        mov    0x4(%esi),%eax
0x0823e6c3 <_efree+121>:        mov    %edx,(%eax)
0x0823e6c5 <_efree+123>:        mov    (%esi),%edx
0x0823e6c7 <_efree+125>:        test   %edx,%edx
0x0823e6c9 <_efree+127>:        je     0x823e6d1 <_efree+135>
0x0823e6cb <_efree+129>:        mov    0x4(%esi),%ecx
0x0823e6ce <_efree+132>:        mov    %ecx,0x4(%edx)
---Type <return> to continue, or q <return> to quit---
0x0823e6d1 <_efree+135>:        push   %esi
0x0823e6d2 <_efree+136>:        call   0x80a1f60 <free>
0x0823e6d7 <_efree+141>:        mov    0x1980(%ebx),%esi
0x0823e6dd <_efree+147>:        pop    %ecx
0x0823e6de <_efree+148>:        mov    (%esi),%eax
0x0823e6e0 <_efree+150>:        test   %eax,%eax
0x0823e6e2 <_efree+152>:        je     0x823e6e6 <_efree+156>
0x0823e6e4 <_efree+154>:        call   *%eax
0x0823e6e6 <_efree+156>:        pop    %ebx
0x0823e6e7 <_efree+157>:        pop    %esi
0x0823e6e8 <_efree+158>:        pop    %edi
0x0823e6e9 <_efree+159>:        pop    %ebp
0x0823e6ea <_efree+160>:        ret
End of assembler dump.
(gdb) info registers
eax            0x63656a62       1667590754
ecx            0x84fa3f4        139437044
edx            0x6f206469       1864393833
ebx            0x84fef54        139456340
esp            0xafffc95c       0xafffc95c
ebp            0x6      0x6
esi            0xa7a1363a       -1482607046
edi            0xa7a13646       -1482607034
eip            0x823e6c3        0x823e6c3
eflags         0x210286 2163334
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51


Mail me at kangur@polcom.net if you need more info.


Reproduce code:
---------------
#!/usr/bin/php
<?php
        error_reporting(E_ALL);

        dl('fann.so');

        $ann = fann_create(array(2, 4, 1), 1.0, 0.5);
?>


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-05-01 14:27 UTC] evan at coeus-group dot com
This bug has been fixed in CVS.

In case this was a documentation problem, the fix will show up at the
end of next Sunday (CET) on pecl.php.net.

In case this was a pecl.php.net website problem, the change will show
up on the website in short time.
 
Thank you for the report, and for helping us make PECL better.

This has been fixed in CVS (FANN's repository on SourceForge) for quite some time--I just haven't had time to write documentation for the new version so I've been holding off on a release.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 12:01:27 2024 UTC