BookinglyTech News
Software

PuTTY se cae al copiar más de 100 líneas con caracteres UTF-8

Un sysadmin reproduce desde hace más de un año un cierre inesperado de PuTTY al copiar salidas con caracteres de dibujo de cajas, en varias versiones y en 32 y 64 bits.

3 min de lecturar/sysadmin0 vistas

Un usuario de r/sysadmin lleva más de un año chocándose con el mismo cuelgue en PuTTY: cuando selecciona y copia más de cien líneas de salida que contienen caracteres UTF-8, en concreto los de dibujo de cajas, el cliente se cierra de golpe. Lo ha reproducido en las versiones 0.76, 0.78 y 0.85, tanto en binarios de 64 como de 32 bits, sobre Windows 10 y sin gestores de portapapeles de terceros instalados. El Visor de eventos apunta a una violación de acceso en ntdll.dll.

El disparador es la conversión al portapapeles

Según su relato, el problema no está en seleccionar, sino en lo que pasa después. La receta que da es sencilla: conectarse a una máquina Linux, lanzar un comando que escupa caracteres de caja —pone como ejemplo fwupdmgr get-devices—, marcar más de un centenar de líneas y copiar. La copia puede dispararse de tres formas: autocopia al seleccionar, Ctrl+Ins o botón derecho con la acción de ratón configurada como Windows. En los tres casos el proceso muere igual.

Ha descartado el resto de variables que se le han ocurrido. Ha probado DejaVu Sans Mono, Consolas, Droid Sans Mono y Courier, ha tocado las opciones de Terminal, Window, Selection y SSH, y el resultado no cambia. Tampoco influye ejecutar como administrador ni arrancar con -restrict-acl, aunque con este último obtiene un mensaje más claro: una instrucción en una dirección de memoria concreta referencia una dirección no válida.

El registro de Windows que adjunta deja el fallo en la versión 0.85.0.0 del ejecutable y en ntdll.dll, versión 10.0.19041.2130, con código de excepción 0xc0000005 y desplazamiento 0x000000000005ace2. Un detalle que encaja con su hipótesis: desactivar la autocopia evita el cierre al seleccionar, pero cualquier copia posterior sigue tumbando la aplicación. Es decir, el camino de la selección al portapapeles es el que revienta, no la selección.

Qué se puede hacer mientras tanto

Poco, y nada elegante. La única salida que ha encontrado es copiar por tandas pequeñas, lo que en una sesión de diagnóstico con salidas largas es una tortura. También cuenta que cuando intentó reportar el fallo se encontró con las webs del proyecto caídas, así que no consta que los mantenedores hayan visto el caso.

Y ahí está el problema de esta historia: es el relato de una persona, no un aviso confirmado. No hay CVE, no hay respuesta del proyecto y nadie ha reproducido el fallo de forma independiente. Puede ser un bug real de la conversión a UTF-8 en el portapapeles, puede ser algo del entorno de esa máquina concreta. Lo que sí es verificable es que el asunto lleva tiempo circulando y que afecta a varias versiones, lo que descarta que sea algo introducido en la última entrega.

Para quien administra Windows y vive dentro de PuTTY, la consecuencia práctica es incómoda: si trabajas con salidas que llevan árboles, tablas o viñetas —systemd, fwupdmgr, cualquier herramienta que dibuje cajas—, copiar tramos largos es una apuesta. Hasta que alguien del proyecto confirme el fallo y lo parchee, toca trocear la copia o pasar por un terminal alternativo cuando el volumen de texto sea alto.