
Hoy me desperté con una noticia que me hizo sonreír como cuando encuentras una cerveza artesanal en la micro: Linux 7.2 finalmente eliminó la API strncpy. Seis años de trabajo, más de 360 parches, y una función que ha sido fuente de bugs por décadas desaparece del kernel.
¿Por qué importa esta wea?
Si eres de los que programan en C o trabajan con sistemas embebidos, sabes que strncpy es como ese compañero de pega que siempre promete hacer la pega bien pero nunca termina lo que empezó. La función tenía un comportamiento contra-intuitivo con la terminación NUL y, encima, llenaba de ceros los buffers de forma redundante, lo que la hacía lenta y propensa a errores.
Yo mismo he perdido horas debuggeando problemas de strings truncados porque strncpy no garantizaba que el destino quedara terminado en NUL. Es una de esas trampas que te hace querer tirar el computador por la ventana.
Las alternativas que llegan
El kernel ahora promueve funciones más seguras y claras:
strscpy()para destinos con terminación NULstrscpy_pad()cuando necesitas zero-paddingstrtomem_pad()para campos de ancho fijo sin NULmemcpy_and_pad()para copias acotadas con padding explícito
En otras palabras: ahora hay una herramienta para cada caso, en vez de una navaja suiza que corta para el lado equivocado.
Mi opinión
Como ingeniero de sistemas chileno, me encanta ver este tipo de refactorizaciones. No es solo cambiar una función por otra; es reconocer que un diseño de hace décadas no cumple con los estándares de seguridad y rendimiento actuales. Seis años suena a mucho, pero en un proyecto del tamaño del kernel —con millones de líneas de código y cientos de arquitecturas soportadas— es un tiempo razonable.
Además, esto demuestra que el software libre no es solo código, es cultura de mejora continua. No se quedan con lo que funciona «más o menos»; lo arreglan de verdad, aunque les tome años.
¿Y tú? ¿Sigues usando strncpy en tus proyectos? Si es así, te recomiendo revisar el código antes de que te muerda. Cachai?
Fuente de inspiración: Linux Finally Eliminates The strncpy API After Six Years Of Work, 360+ Patches – Phoronix
