El kernel Linux 7.2 ha eliminado definitivamente la API strncpy, una función heredada para copiar hasta un número determinado de bytes que llevaba años marcada como obsoleta dentro del propio núcleo. La retirada es el resultado de un trabajo de ingeniería de seis años que se ha concretado en aproximadamente 362 commits, con los que se han reescrito o sustituido todos los usos internos de strncpy en el código del kernel. La fusión, materializada el pasado viernes, suprime tanto la interfaz general como las últimas implementaciones de strncpy específicas de cada arquitectura de CPU. Los desarrolladores justifican la decisión en la reiteración de errores provocados por la función, derivada de una semántica contra-intuitiva en torno al carácter NUL terminador, así como en pérdidas de rendimiento por el rellenado con ceros del destino de la copia, innecesario en la mayoría de casos. En su lugar, el código del kernel debe recurrir a strscpy() para destinos terminados en NUL, strscpy_pad() para terminación en NUL con relleno de ceros, strtomem_pad() para campos de ancho fijo sin terminación NUL, memcpy_and_pad() para copias acotadas con relleno explícito, y memcpy() cuando se conoce la longitud exacta de los datos a copiar. La sustitución completa cierra uno de los procesos de limpieza de código más prolongados del kernel Linux reciente.
