Una delle operazioni più comuni nella programmazione a basso livello consiste nella copia di stringhe e blocchi di memoria. Proprio per questo motivo sorprende che una funzione presente da decenni nel linguaggio C possa trasformarsi in una fonte continua di errori. Con Linux 7.2 si chiude una lunga attività di bonifica del codice del kernel: la storica funzione strncpy() scompare completamente dopo circa 6 anni di lavoro e oltre 360 modifiche distribuite tra sottosistemi, driver e architetture hardware differenti.
La decisione è figlia di problemi concreti che gli sviluppatori del kernel hanno affrontato per anni: la manutenzione del codice del kernel Linux coinvolge migliaia di contributori e oltre 30 milioni di righe di codice; eliminare un’API radicata richiede quindi una revisione meticolosa e progressiva.
La rimozione definitiva di una funzione è quindi un passaggio da svolgere con la massima cautela. Tuttavia, negli ultimi anni il progetto Linux ha introdotto numerose iniziative dedicate all’hardening del codice, alla prevenzione delle vulnerabilità di memoria e alla riduzione delle superfici d’attacco. L’abbandono di strncpy() si posiziona sullo stesso solco.
Perché strncpy è considerata una funzione problematica su Linux








