From 099d52bc4ebc4ee5a36a0cf6d90ce66a230adf0d Mon Sep 17 00:00:00 2001 From: kent1 <kent1@arscenic.info> Date: Tue, 12 Feb 2013 10:32:36 +0000 Subject: [PATCH] =?UTF-8?q?V=C3=A9rifier=20que=20l'image=20temporaire=20ex?= =?UTF-8?q?iste=20bien=20(cr=C3=A9=C3=A9e=20par=20GD)=20avant=20de=20faire?= =?UTF-8?q?=20un=20getimagesize=20qui=20risque=20de=20renvoyer=20un=20warn?= =?UTF-8?q?ing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Si non, on renvoit false --- ecrire/inc/filtres_images_lib_mini.php | 50 ++++++++++++++------------ 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/ecrire/inc/filtres_images_lib_mini.php b/ecrire/inc/filtres_images_lib_mini.php index f93aace205..6f373026cb 100644 --- a/ecrire/inc/filtres_images_lib_mini.php +++ b/ecrire/inc/filtres_images_lib_mini.php @@ -365,20 +365,22 @@ function _imagecreatefromgif($filename){ * @param string $fichier * Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png). * @return bool - * false si l'image créée a une largeur nulle ; + * false si l'image créée a une largeur nulle ou n'existe pas ; * true si une image est bien retournée. */ function _image_imagepng($img, $fichier) { if (!function_exists('imagepng')) return false; $tmp = $fichier.".tmp"; $ret = imagepng($img,$tmp); + if(file_exists($tmp)){ + $taille_test = getimagesize($tmp); + if ($taille_test[0] < 1) return false; - $taille_test = getimagesize($tmp); - if ($taille_test[0] < 1) return false; - - spip_unlink($fichier); // le fichier peut deja exister - @rename($tmp, $fichier); - return $ret; + spip_unlink($fichier); // le fichier peut deja exister + @rename($tmp, $fichier); + return $ret; + } + return false; } /** @@ -390,21 +392,22 @@ function _image_imagepng($img, $fichier) { * @param string $fichier * Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.gif). * @return bool - * false si l'image créée a une largeur nulle ; + * false si l'image créée a une largeur nulle ou n'existe pas ; * true si une image est bien retournée. */ function _image_imagegif($img,$fichier) { if (!function_exists('imagegif')) return false; $tmp = $fichier.".tmp"; $ret = imagegif($img,$tmp); - - $taille_test = getimagesize($tmp); - if ($taille_test[0] < 1) return false; - - - spip_unlink($fichier); // le fichier peut deja exister - @rename($tmp, $fichier); - return $ret; + if(file_exists($tmp)){ + $taille_test = getimagesize($tmp); + if ($taille_test[0] < 1) return false; + + spip_unlink($fichier); // le fichier peut deja exister + @rename($tmp, $fichier); + return $ret; + } + return false; } /** @@ -421,7 +424,7 @@ function _image_imagegif($img,$fichier) { * valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis * mes_options.php). * @return bool - * false si l'image créée a une largeur nulle ; + * false si l'image créée a une largeur nulle ou n'existe pas ; * true si une image est bien retournée. */ function _image_imagejpg($img,$fichier,$qualite=_IMG_GD_QUALITE) { @@ -429,12 +432,15 @@ function _image_imagejpg($img,$fichier,$qualite=_IMG_GD_QUALITE) { $tmp = $fichier.".tmp"; $ret = imagejpeg($img,$tmp, $qualite); - $taille_test = getimagesize($tmp); - if ($taille_test[0] < 1) return false; + if(file_exists($tmp)){ + $taille_test = getimagesize($tmp); + if ($taille_test[0] < 1) return false; - spip_unlink($fichier); // le fichier peut deja exister - @rename($tmp, $fichier); - return $ret; + spip_unlink($fichier); // le fichier peut deja exister + @rename($tmp, $fichier); + return $ret; + } + return false; } /** -- GitLab