FrankenPHP 1.12.6 corrige un fallo en HTTP/2 al leer php://input tras finalizar una petición
FrankenPHP v1.12.6 soluciona un segfault que podía derribar todo el proceso cuando un script PHP leía php://input después de frankenphp_finish_request() bajo HTTP/2.
La versión también añade un ejemplo de worker PSR-15 y actualizaciones de documentación. Se recomienda actualizar a los usuarios de HTTP/2.
FrankenPHP 1.12.6 es una versión correctiva que soluciona un fallo capaz de derribar todo el proceso al servir tráfico por HTTP/2.
El error ocurría cuando un script PHP llamaba a frankenphp_finish_request() —o cerraba su contexto antes de tiempo— y después leía php://input de forma diferida, un patrón habitual cuando enable_post_data_reading está en Off. En ese caso, FrankenPHP intentaba establecer un plazo de lectura sobre un flujo HTTP/2 ya finalizado, desreferenciaba el estado nulo del flujo y provocaba un segfault. Las conexiones HTTP/1 no se veían afectadas.
La corrección, aportada por @dunglas en la pull request #2538, omite el plazo de lectura del cuerpo de la petición una vez que el contexto ha terminado. Resuelve el issue #2535. Se recomienda actualizar a quienes usen FrankenPHP sobre HTTP/2.
La versión incluye además cambios en la documentación: un nuevo ejemplo de worker PSR-15 de @dunglas (#2539), la eliminación de las mayúsculas de título en la documentación por @alexandre-daubois (#2534) y traducciones actualizadas (#2537). El changelog completo compara v1.12.5 con v1.12.6.
Tribuna de lectores
Aún no hay aportaciones — abre el debate.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.