Je ne connais pas les détails exacts du bug, mais si la description du problème dans l'article correspond bien à la réalité:
une lecture mémoire en dehors des limites lors de validation asm.js.
Ça veut bien dire que c'est le code C++ réalisant la validation du asm.js qui provoque le dépassement et pas le code qui a été généré.
Ce n'est pas pour rien que Mozilla travaille sur le langage Rust qui garantit la sécurité mémoire. Il reste évidement plein d'autres types de risques, mais c'est quand même une avancée certaine au niveau de la sécurité, vu que ce type d'erreurs est très souvent critique et que l'expérience continue toujours de prouver qu'elles finissent fatalement par arriver, même aux meilleurs programmeurs.
En garantissant la sécurité de la mémoire, ce type d'erreurs ne peut plus arriver. Valgrind reste en effet utile à cause des bibliothèques externes et des blocs de code "unsafe". Mais ce n'est pas non plus un outil magique qui fait disparaître les bugs, donc avoir la garantie que la grande majorité du code est saine niveau mémoire, c'est bon à prendre.
[^] # Re: Développeur en C++
Posté par Uther Lightbringer . En réponse à la dépêche Firefox : version 38. Évalué à 8.
Je ne connais pas les détails exacts du bug, mais si la description du problème dans l'article correspond bien à la réalité:
Ça veut bien dire que c'est le code C++ réalisant la validation du asm.js qui provoque le dépassement et pas le code qui a été généré.
Ce n'est pas pour rien que Mozilla travaille sur le langage Rust qui garantit la sécurité mémoire. Il reste évidement plein d'autres types de risques, mais c'est quand même une avancée certaine au niveau de la sécurité, vu que ce type d'erreurs est très souvent critique et que l'expérience continue toujours de prouver qu'elles finissent fatalement par arriver, même aux meilleurs programmeurs.
En garantissant la sécurité de la mémoire, ce type d'erreurs ne peut plus arriver. Valgrind reste en effet utile à cause des bibliothèques externes et des blocs de code "unsafe". Mais ce n'est pas non plus un outil magique qui fait disparaître les bugs, donc avoir la garantie que la grande majorité du code est saine niveau mémoire, c'est bon à prendre.