gzip 1.15 corrige errores que la herramienta arrastraba desde su nacimiento
La versión 1.15 llega con más de cien commits centrados en fallos presentes desde el origen del programa, entre ellos un desbordamiento de búfer al descomprimir .lzh
gzip 1.15 ya está disponible. La versión sucede a la 1.14, publicada en abril de 2025, y llega con más de cien commits nuevos centrados casi en exclusiva en corregir errores, muchos de ellos presentes desde el nacimiento de la herramienta. Los detalles están en el anuncio de la versión en la lista de GNU.
Lo que se arregla
El bloque más llamativo es el de los fallos que llevaban ahí desde siempre. gzip ya no borra el archivo equivocado si otro proceso renombra a la vez un directorio ancestro del destino de la descompresión. gzip -d ya no rechaza firmas PKZIP, cabeceras locales ni descriptores de datos, que aparecen de forma legítima en archivos zip generados en streaming. Y los mensajes de diagnóstico entrecomillan los nombres de archivo que traen caracteres raros.
En robustez hay varios arreglos que conviene mirar: uso de memoria no inicializada con entradas malformadas, un desbordamiento de búfer al descomprimir un .lzh después de un .Z, y corrupción de salida al descomprimir .lzh cuando el búfer de bits interno no se limpia bien o cuando la tabla de decodificación del archivo anterior se cuela en el siguiente. El anuncio no menciona ningún CVE asignado a estos fallos.
El desbordamiento al descomprimir .lzh se alcanza con un flujo de entrada manipulado, que es justo el escenario en el que se descomprime algo que viene de fuera. Quien tenga gzip en una cadena que procesa archivos de terceros tiene motivo para actualizar.
También hay cambios de comportamiento. gzip ya no asume el locale C: ahora sigue el locale del entorno, lo que afecta al entrecomillado de nombres y a mensajes por el estilo. Si algún script parsea esas salidas, merece un repaso. Se corrige además la sincronización de directorios padre con --synchronous en plataformas con O_PATH (GNU/Linux) y con O_SEARCH sin O_PATH (FreeBSD), y desaparece la carrera al crear temporales de gzexe, zdiff y znew en sistemas sin mktemp. El fallo de sincronización venía de la 1.7.
Plataformas que se quedan fuera
La versión suelta lastre: deja de soportar FreeBSD 4.11, HP-UX 11.00, Minix 3.1.8 y Windows 8.1 a través de MinGW sin UCRT. Son entornos que ya casi nadie mantiene, pero si alguno sigue vivo en tu inventario, ahí está el aviso.
gzip es de esas piezas que nadie mira hasta que falla: está en la base de casi cualquier distribución, en tuberías de build y en scripts que llevan años sin tocarse. Una versión que corrige errores presentes desde el origen del programa merece pasar por el calendario de parches. Queda por ver cuándo la suben las distribuciones y si el cambio de locale rompe alguna automatización.
