Aller au contenu

Glossaire

Sûreté mémoire

Propriété selon laquelle un programme n'accède à la mémoire que dans les limites et la durée de vie d'objets valides, excluant débordements, use-after-free et double free.

La sûreté mémoire est la garantie que chaque accès mémoire reste dans les limites d'un objet valide et pendant la durée de vie de cet objet. Elle exclut les erreurs spatiales (débordements de tampon, lectures hors limites) et les erreurs temporelles (use-after-free, double free, utilisation de mémoire non initialisée). Le C et le C++ laissent ces garanties à la charge du programmeur ; des langages comme Rust, Go, Java, C# et Swift les imposent via des vérifications à la compilation, des contrôles de bornes à l'exécution et une gestion automatique de la mémoire.

Plusieurs grands éditeurs rapportent que les problèmes de sûreté mémoire constituent la majorité de leurs failles de sécurité graves, ce qui explique pourquoi gouvernements et industriels encouragent désormais des feuilles de route vers des langages sûrs pour la mémoire. Voir langages sûrs pour la mémoire.