From ae4816027f5e97bc7f72c116ba1603af1ff30f6c Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Fri, 14 Sep 2007 22:09:41 +0000
Subject: [PATCH] a cause d'une bizarrerie de MySQL, SPIP acceptait de charger
 un document nomme 'xxx.pdf ' avec un espace a la fin (#1058) la bizarrerie
 c'est que la requete suivante donnait la ligne 'pdf': {{{ mysql> SELECT *
 FROM spip_types_documents WHERE extension='pdf '; }}}

---
 ecrire/inc/ajouter_documents.php | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php
index 91abc0ad7c..f51aea2543 100644
--- a/ecrire/inc/ajouter_documents.php
+++ b/ecrire/inc/ajouter_documents.php
@@ -83,7 +83,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 		$ext = corriger_extension(strtolower($match[1]));
 
 		// Si le fichier est de type inconnu, on va le stocker en .zip
-		$q = spip_query("SELECT * FROM spip_types_documents WHERE extension=" . _q($ext) . " AND upload='oui'");
+		$q = spip_query($p = "SELECT * FROM spip_types_documents WHERE extension=" . _q($ext) . " AND upload='oui'");
 		if (!$row = sql_fetch($q)) {
 
 /* STOCKER LES DOCUMENTS INCONNUS AU FORMAT .BIN */
@@ -363,10 +363,11 @@ function traite_svg($file)
 //
 // Corrige l'extension du fichier dans quelques cas particuliers
 // (a passer dans ecrire/base/typedoc)
-//
-
+// A noter : une extension 'pdf ' passe dans la requete de controle
+// mysql> SELECT * FROM spip_types_documents WHERE extension="pdf ";
 // http://doc.spip.org/@corriger_extension
 function corriger_extension($ext) {
+	$ext = preg_replace(',[^a-z0-9],', '', $ext);
 	switch ($ext) {
 	case 'htm':
 		return 'html';
-- 
GitLab