El paquete Zlib contiene rutinas de compresión y descompresión usadas por algunos programas.
Zlib tiene una vulnerabilidad de sobrecarga de pila que puede provocar un aaque de Denegación de Servicio. El siguiente parche corrige el problema:
patch -Np1 -i ../zlib-1.2.2-security_fix-1.patch
Se sabe que Zlib construye incorrectamente sus librerías si en el entorno se ha especificado un CFLAGS. Si estás usando tu propia variable CFLAGS, asegúrate de añadirle la directiva -fPIC durante el siguiente comando de configuración, y elimínala posteriormente.
Prepara Zlib para su compilación:
./configure --prefix=/usr --shared --libdir=/lib
Compila el paquete:
make
Para comprobar los resultados, ejecuta: make check.
Instala la librería compartida:
make install
El comando anterior instalo un fichero .so en /lib. Eliminalo y reenlazalo a /usr/lib:
rm /lib/libz.so ln -sf ../../lib/libz.so.1.2.2 /usr/lib/libz.so
Construye también la librería estática:
make clean ./configure --prefix=/usr make
Para obtener de nuevo los resultados de las pruebas, ejecuta: make check.
Instala la librería estática:
make install
Corrige los permisos de la librería estática:
chmod 644 /usr/lib/libz.a
Es una buena política y práctica común colocar las librerías importantes en el directorio /lib. Esto es muy importante en los casos en que /usr se encuentra en una partición separada. Esencialmente, las librerías con componentes en tiempo de ejecución usadas por los programas de /bin o /sbin deben residir en /lib para que estén en la partición raiz y disponibles en el caso de que /usr sea inaccesible.
Por esta razón movemos los componentes en tiempo de ejecución de la Zlib compartida a /lib:
mv /usr/lib/libz.so.* /lib
Corrige el enlace simbólico /usr/lib/libz.so:
ln -sf ../../lib/libz.so.1 /usr/lib/libz.so