Le nom d'un fichier dont l'existence doit être testée ne doit pas contenir de ? (timestamp ou ?16px)
Bonjour,
J'ai donc investigué un peu plus loin suite à #5921 (closed)
J'ai trouvé 3 cas problématiques :
-
https://git.spip.net/spip/filtres_images/-/blob/master/prive/squelettes/inclure/favicon-head.html : il faut faire un
|extraire_attribut{src}
avant d'appeler|timestamp
(à faire aussi dans https://git.spip.net/spip/spip/-/blob/master/prive/squelettes/inclure/favicon-head.html?ref_type=heads) - réentrance dans timestamp : il faut supprimer le timestamp éventuellement déjà présent avant de poser le timestamp (donc, rajouter
$fichier = supprimer_timestamp($fichier);
au tout début de la fonction) - icones --xx.svg?16px : ça fait planter ici : https://git.spip.net/spip/spip/-/blob/master/ecrire/inc/filtres.php?ref_type=heads#L3410 mais je n'ai pas trouvé où dans le code de ?16px était rajouté (ni s'il servait effectivement). Et je n'ai pas vu de fonction dans SPIP pour supprimer ce qui serait '?n'importequoi' à la fin d'une chaîne.
Tout cela provoque des warning avec open_basedir, même si ça n'est pas open_basedir en lui même le problème, mais la string passée qui n'a pas le bon format.