Aller au contenu

Attention : delete[] est une fonction mal nommée ! (C++)

Bonjour,

Je trouve assez fâcheux, étant donnés les problèmes que posent les nombreux oublis d’effacement de données en matière de sécurité informatique, que la communauté C++ ait choisi ce nom de fonction pour « libérer » la mémoire (et d’éventuelles ressources) liée(s) à un pointeur.

Cela peut prêter à confusion, et c’est important !

Je trouve encore plus fâcheux que les enseignants ne se préoccupent pas d’expliquer clairement cela à leurs apprenants dès les premières formations aux pointeurs en C++.

Ils devraient leur apprendre à nettoyer (wipe en anglais) chaque espace dont ils se servent avant de s’en aller.

Il ne faut pas s’étonner, dans ces conditions, de ce qu’on trouve dans les codes informatiques qui sont lâchés dans la nature : de nombreux trous béants dans la raquette de la sécurité informatique. Avec une telle raquette, on est sûr de perdre à tous les coups !

Bien sûr, dans certains cas, on peut choisir de ne pas nettoyer. Il faut avoir de bonnes raisons pour cela. Il convient alors de l’indiquer dans un commentaire clair et explicite dans le code informatique livré.

Pour l'exercice que je suis en train de faire, il faudrait donc : 
— compléter les indications pour prendre la sécurité en considération lors de la libération.
— modifier des déclarations de types remises aux apprenants en début d'exercice pour permettre un réel nettoyage qui ne laisse pas le moindre indice à ceux qui viendraient fouiner dans les zones mémoires libérées.
Ce qui conduirait les apprenants à ajouter des routines appropriées histoire de prendre tout de suite les bonnes habitudes.

Ce serait tout de même plus simple, plus pertinent et plus efficient de former directement les jeunes générations à des langages sûrs, vous ne croyez pas ?

Au passage, je cherche des supports de qualité qui expliquent bien, dans le détail, et sans rien négliger ni oublier, les procédés de gestion de la mémoire par Rust et les autres langages.
Ainsi que les failles qui subsistent.
Si vous en avez, merci d'avance.

Au plaisir,

Marc JESTIN

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *