Les traitements d’images de mauvaise extension créent des erreurs fatales
Comme il a été discuté sur la liste spip-dev, il y a des cas maintenant (depuis une mise à jour des librairies GD sur les serveurs), où des images créent des erreurs fatales, ce qui plante complètement les pages.
Cela se passe souvent sur des sites anciens, car normalement sur les SPIP récents, des images dont l’extension est incorrecte par rapport au contenu réel du fichier sont renommés dès l’import. Mais dans le cas de vieux sites, il peut encore y avoir des logos ou des documents, par exemple IMG/arton1.jpg dont le contenu est au format PNG. Avant libgd 2.?, et après libgd 2.2.5, une erreur "normale" est levée… mais notamment en libgd 2.2.4 (dans Debian 9 par exemple), une erreur fatale est levée. https://github.com/libgd/libgd/issues/338
Il faudrait j’imagine :
dans SPIP éviter ce problème.
permettre de corriger les fichiers impactés
Éviter le problème fatal dans SPIP
La solution la plus évidente est d’analyser le contenu "mime type" du fichier prioritairement à l’extension.
Cette solution fonctionne avec une analyse via la fonction finfo_file
Je joins un patch qui permet cela, et log dans tmp/log/images tout fichier d’extension incorrect
Recherche et correction des fichiers erronés
D’autre part il peut être pratique de permettre une recherche / correction de ces fichiers.
J’ai proposé une commande Spip-cli images:verifier:extensions
qui permet également de réparer les fichiers avec l’option --reparer