« php-crashers » : exemples de scripts qui déclenche une segmentation fault en PHP

Erreur de segmentation ?

Une erreur de segmentation (en anglais segmentation fault, en abrégé segfault) est un plantage d’une application qui a tenté d’accéder à un emplacement mémoire qui ne lui était pas alloué.

Les applications, lorsqu’elles s’exécutent, ont besoin de mémoire vive, allouée par le système d’exploitation. Une fois allouée à l’application, aucune autre application ne peut avoir accès à cette zone ; cela garantit une sûreté de fonctionnement pour chaque application contre les erreurs des autres. Ainsi, si une application tente le moindre accès à une zone mémoire qui ne lui est pas allouée, le système d’exploitation le détecte et stoppe immédiatement son exécution.

La très grande majorité des erreurs de segmentation ne sont pas volontaires (si elles le sont, il y a de fortes chances que cela soit dans un but délictueux) ; elles sont dues à une mauvaise conception ou réalisation de l’application.

Wikipedia – https://fr.wikipedia.org/wiki/Erreur_de_segmentation

Comment ça se passe en PHP

PHP est un langage de programmation et il est possible que ce type d’erreur soit déclenché lors de l’exécution de certaines portions de code…

Sur Github, un dépôt créé par Hanno Böck recense plusieurs façon de les déclencher. Ces exemples détaillent s’il s’agit d’un bug dans le langage (avec le lien vers le bug tracker) et quelles versions sont touchées.

https://github.com/hannob/php-crashers

Si vous testez ces différents scripts, il est important que l’extension XDebug ne soit pas activée. Elle va agir comme garde fou sur les problèmes mis en avant dans ce code (limite d’imbrication de fonction par exemple).

Publié par

Stéphane

Passionné par les nouvelles technologies, la veille est mon quotidien. Je mets au service mon expertise et ma curiosité pour la conceptions de solutions techniques pérennes. Consultant et formateur je manipule au quotidien PHP, SolR, ElasticSearch, JavaScript, HTML5, WordPress...

Laisser un commentaire

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