PHP odbc crash (heap overflow detected)
Actualmente estoy trabajando en un proyecto el cual incumbe conectarse a una base de datos SQL Server desde un servidor Linux utilizando php. Para eso utilizé la extensión php5-odbc.
Datos del Servidor
SO: Debian Lenny amd64 bits
PHP: 5.2.6 + suhosin patch + php5-odbc extensión.
Web Server: Apache
El problema que tuve fue tratando de ejecutar un query con la función odbc_exec el cual se podía observar en el log que apache con un mensaje como el siguiente:
"ALERT - canary mismatch on efree() - heap overflow detected (attacker 'REMOTE_ADDR not set" donde REMOTE_ADDR es el ip de la máquina que hizo el request.
Al principio pensé que podía ser un error en el patch suhosin, pero realmente el problema está en la extensión odbc.
Solución
Para solucionar esta situación simplemente busqué la última versión del paquete en http://packages.debian.org/pt-br/sid/php/php5-odbc. En mi caso el servidor es amd64 bits por lo que descargo el paquete especial para esa arquitectura.
El siguiente paso es descomprimir el paquete descargado y sobreescribir las librerías odbc.so y pdo_odbc.so.
# dpkg -x php5-odbc_5.2.11.dfsg.1-2_amd64.deb php5-odbc_5.2.11
# cd php5-odbc_5.2.11
# cp -r usr/lib/php5/20060613/* /usr/lib/php5/20060613/
# /etc/init.d/apache restart
Con esto queda solucionado el problema del paquete odbc.
Saludos ...
Enviar un comentario nuevo