Bug#680381: unblock: spip/2.1.16-1
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: freeze-exception
Please unblock package spip, it's a minor release that will fix a
security issue, and a few bugs. The attached debdiff is pretty thin:
most of the changes, in the security screen file, are due to rewritten
comments.
unblock spip/2.1.16-1
-- System Information:
Debian Release: 6.0.5
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 'stable'), (150, 'testing'), (120, 'unstable'), (110, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru spip-2.1.15/debian/changelog spip-2.1.16/debian/changelog
--- spip-2.1.15/debian/changelog 2012-06-12 19:17:13.000000000 -0400
+++ spip-2.1.16/debian/changelog 2012-07-04 08:46:23.000000000 -0400
@@ -1,3 +1,13 @@
+spip (2.1.16-1) unstable; urgency=high
+
+ * New upstream version:
+ - fixes PHP injection (Closes: #680118);
+ - fixes growing session directory;
+ - fixes PHP 5.4 compatibility.
+ * Update security screen file to 1.1.3.
+
+ -- David Prévot <taffit@debian.org> Wed, 04 Jul 2012 08:42:01 -0400
+
spip (2.1.15-1) unstable; urgency=high
* New upstream version, fixes cross site scripting.
diff -Nru spip-2.1.15/debian/patches/fix_displayed_version.patch spip-2.1.16/debian/patches/fix_displayed_version.patch
--- spip-2.1.15/debian/patches/fix_displayed_version.patch 2012-06-12 17:55:50.000000000 -0400
+++ spip-2.1.16/debian/patches/fix_displayed_version.patch 2012-07-04 08:30:47.000000000 -0400
@@ -2,7 +2,7 @@
Make it obvious it's a Debian (patched) version
Forwarded: not-needed
Author: David Prévot <taffit@debian.org>
-Last-Update: 2012-06-12
+Last-Update: 2012-07-04
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -423,7 +423,7 @@
@@ -10,7 +10,7 @@
// 1.xxyy : xx00 versions stables publiees, xxyy versions de dev
// (ce qui marche pour yy ne marchera pas forcement sur une version plus ancienne)
-$spip_version_affichee = "$spip_version_branche";
-+$spip_version_affichee = "2.1.15-1 (Debian)";
++$spip_version_affichee = "2.1.16-1 (Debian)";
// ** Securite **
$visiteur_session = $auteur_session = $connect_statut = $connect_toutes_rubriques = $hash_recherche = $hash_recherche_strict = $ldap_present ='';
diff -Nru spip-2.1.15/debian/security/ecran_securite.php spip-2.1.16/debian/security/ecran_securite.php
--- spip-2.1.15/debian/security/ecran_securite.php 2012-06-12 17:06:39.000000000 -0400
+++ spip-2.1.16/debian/security/ecran_securite.php 2012-07-04 08:31:30.000000000 -0400
@@ -5,21 +5,20 @@
* ------------------
*/
-define('_ECRAN_SECURITE', '1.1.2'); // 12 juin 2012
+define('_ECRAN_SECURITE', '1.1.3'); // 3 juillet 2012
/*
* Documentation : http://www.spip.net/fr_article4200.html
- *
*/
/*
- * test utilisateur
+ * Test utilisateur
*/
if (isset($_GET['test_ecran_securite']))
$ecran_securite_raison = 'test '._ECRAN_SECURITE;
/*
- * detecteur de robot d'indexation
+ * Détecteur de robot d'indexation
*/
if (!defined('_IS_BOT'))
define('_IS_BOT',
@@ -28,10 +27,11 @@
(string) $_SERVER['HTTP_USER_AGENT'])
);
-/* - interdit de passer une variable id_article (ou id_xxx) qui ne
- * soit pas numerique (ce qui bloque l'exploitation de divers trous
- * de securite, dont celui de toutes les versions < 1.8.2f)
- * (sauf pour id_table, qui n'est pas numerique jusqu'a [5743])
+/*
+ * Interdit de passer une variable id_article (ou id_xxx) qui ne
+ * soit pas numérique (ce qui bloque l'exploitation de divers trous
+ * de sécurité, dont celui de toutes les versions < 1.8.2f)
+ * (sauf pour id_table, qui n'est pas numérique jusqu'à [5743])
*/
foreach ($_GET as $var => $val)
if ($_GET[$var] AND strncmp($var,"id_",3)==0 AND $var!='id_table')
@@ -43,15 +43,14 @@
if ($GLOBALS[$var] AND strncmp($var,"id_",3)==0 AND $var!='id_table')
$GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval',$GLOBALS[$var]):intval($GLOBALS[$var]);
-
-/* - interdit la variable $cjpeg_command, qui etait utilisee sans
- * precaution dans certaines versions de dev (1.8b2 -> 1.8b5)
- *
+/*
+ * Interdit la variable $cjpeg_command, qui était utilisée sans
+ * précaution dans certaines versions de dev (1.8b2 -> 1.8b5)
*/
$cjpeg_command='';
-/* - controle de quelques variables (XSS)
- *
+/*
+ * Contrôle de quelques variables (XSS)
*/
foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre') as $var) {
if (isset($_GET[$var]))
@@ -60,15 +59,15 @@
$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,',' ',(string)$_POST[$var]);
}
-/* - filtre l'acces a spip_acces_doc (injection SQL en 1.8.2x)
- *
+/*
+ * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x)
*/
if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) {
$file = addslashes((string)$_GET['file']);
}
/*
- * - agenda joue a l'injection php
+ * Agenda joue à l'injection php
*/
if (isset($_REQUEST['partie_cal'])
AND $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']))
@@ -78,7 +77,7 @@
$ecran_securite_raison = "echelle";
/*
- * - espace prive
+ * Espace privé
*/
if (isset($_REQUEST['exec'])
AND !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']))
@@ -107,8 +106,8 @@
}
}
-/* - bloque les requetes contenant %00 (manipulation d'include)
- *
+/*
+ * Bloque les requêtes contenant %00 (manipulation d'include)
*/
if (strpos(
@get_magic_quotes_gpc() ?
@@ -117,22 +116,23 @@
) !== false)
$ecran_securite_raison = "%00";
-/* - bloque les requetes fond=formulaire_
- *
+/*
+ * Bloque les requêtes fond=formulaire_
*/
if (isset($_REQUEST['fond'])
AND preg_match(',^formulaire_,i', $_REQUEST['fond']))
$ecran_securite_raison = "fond=formulaire_";
-/* - bloque les requetes du type ?GLOBALS[type_urls]=toto (bug vieux php)
- *
+/*
+ * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php)
*/
if (isset($_REQUEST['GLOBALS']))
$ecran_securite_raison = "GLOBALS[GLOBALS]";
-/* - bloque les requetes des bots sur:
- * les agenda
- * les paginations entremelees
+/*
+ * Bloque les requêtes des bots sur:
+ * les agenda
+ * les paginations entremélées
*/
if (_IS_BOT AND (
(isset($_REQUEST['echelle']) AND isset($_REQUEST['partie_cal']) AND isset($_REQUEST['type']))
@@ -162,27 +162,29 @@
if (isset($_REQUEST[$var]) AND is_array($_REQUEST[$var]))
$ecran_securite_raison = "xss ".$var;
-/* Parade antivirale contre un cheval de troie */
-if(!function_exists('tmp_lkojfghx')){
-function tmp_lkojfghx(){}
-function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){
- // si jamais on est arrive ici sur une erreur php
- // et qu'un autre gestionnaire d'erreur est defini, l'appeller
- if($b&&$GLOBALS['tmp_xhgfjokl'])
- call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);
-}
+/*
+ * Parade antivirale contre un cheval de troie
+ */
+if (!function_exists('tmp_lkojfghx')) {
+ function tmp_lkojfghx() {}
+ function tmp_lkojfghx2($a=0, $b=0, $c=0, $d=0) {
+ // si jamais on est arrivé ici sur une erreur php
+ // et qu'un autre gestionnaire d'erreur est défini, l'appeller
+ if ($b&&$GLOBALS['tmp_xhgfjokl'])
+ call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);
+ }
}
if (isset($_POST['tmp_lkojfghx3']))
$ecran_securite_raison = "gumblar";
/*
- * Outils XML mal securises < 2.0.9
+ * Outils XML mal sécurisés < 2.0.9
*/
if (isset($_REQUEST['transformer_xml']))
$ecran_securite_raison = "transformer_xml";
/*
- * Sauvegarde mal securisee < 2.0.9
+ * Sauvegarde mal securisée < 2.0.9
*/
if (isset($_REQUEST['nom_sauvegarde'])
AND strstr((string)$_REQUEST['nom_sauvegarde'], '/'))
@@ -194,14 +196,15 @@
/*
* op permet des inclusions arbitraires ;
- * on verifie 'page' pour ne pas bloquer ... drupal
+ * on vérifie 'page' pour ne pas bloquer ... drupal
*/
if (isset($_REQUEST['op']) AND isset($_REQUEST['page'])
AND $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op']))
$ecran_securite_raison = 'op';
-
-/* Forms & Table ne se mefiait pas assez des uploads de fichiers */
+/*
+ * Forms & Table ne se méfiait pas assez des uploads de fichiers
+ */
if (count($_FILES)){
foreach($_FILES as $k=>$v){
if (preg_match(',^fichier_\d+$,',$k)
@@ -210,16 +213,22 @@
}
}
-/* reinstall=oui un peu trop permissif */
+/*
+ * reinstall=oui un peu trop permissif
+ */
if (isset($_REQUEST['reinstall'])
AND $_REQUEST['reinstall'] == 'oui')
$ecran_securite_raison = 'reinstall=oui';
-/* echappement xss referer */
+/*
+ * Échappement xss referer
+ */
if (isset($_SERVER['HTTP_REFERER']))
$_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##');
-/* Reinjection des cles en html dans l'admin r19561 */
+/*
+ * Réinjection des clés en html dans l'admin r19561
+ */
if (strpos($_SERVER['REQUEST_URI'],"ecrire/")!==false){
$zzzz=implode("",array_keys($_REQUEST));
if (strlen($zzzz)!=strcspn($zzzz,'<>"\''))
@@ -227,6 +236,21 @@
}
/*
+ * Injection par connect
+ */
+if (isset($_REQUEST['connect'])
+ AND
+ // cas qui permettent de sortir d'un commentaire PHP
+ (strpos($_REQUEST['connect'], "?".">")!==false
+ OR strpos($_REQUEST['connect'], "\n")!==false
+ OR strpos($_REQUEST['connect'], "\r")!==false)
+ ) {
+ $_REQUEST['connect'] = str_replace(array("?".">", "\r", "\n"), "", $_REQUEST['connect']);
+ if (isset($_GET['connect'])) $_GET['connect'] = $_REQUEST['connect'];
+ if (isset($_POST['connect'])) $_POST['connect'] = $_REQUEST['connect'];
+}
+
+/*
* S'il y a une raison de mourir, mourons
*/
if (isset($ecran_securite_raison)) {
@@ -237,15 +261,15 @@
header("Content-Type: text/html");
die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>");
}
+
/*
- * Fin securite
+ * Fin sécurité
*/
/*
- * Bloque les bots quand le load deborde
- *
+ * Bloque les bots quand le load déborde
*/
if (!defined('_ECRAN_SECURITE_LOAD'))
define('_ECRAN_SECURITE_LOAD', 4);
diff -Nru spip-2.1.15/ecrire/base/connect_sql.php spip-2.1.16/ecrire/base/connect_sql.php
--- spip-2.1.15/ecrire/base/connect_sql.php 2012-06-12 10:32:34.000000000 -0400
+++ spip-2.1.16/ecrire/base/connect_sql.php 2012-07-03 11:31:38.000000000 -0400
@@ -60,11 +60,7 @@
if (!isset($GLOBALS['db_ok'])) {
// fera mieux la prochaine fois
if ($install) return false;
- if ($f AND $readable)
- spip_log("spip_connect: fichier de connexion '$f' OK.");
- else
- spip_log("spip_connect: fichier de connexion '$f' non trouve");
- spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.");
+ spip_log("spip_connect: serveur $index mal defini dans '$f'. spip_connect_version: " . @$GLOBALS['spip_connect_version']);
// ne plus reessayer si ce n'est pas l'install
return $connexions[$index]=false;
}
diff -Nru spip-2.1.15/ecrire/exec/auteurs.php spip-2.1.16/ecrire/exec/auteurs.php
--- spip-2.1.15/ecrire/exec/auteurs.php 2012-06-12 10:32:30.000000000 -0400
+++ spip-2.1.16/ecrire/exec/auteurs.php 2012-07-03 11:31:37.000000000 -0400
@@ -56,7 +56,11 @@
lettres_d_auteurs(requete_auteurs($tri, $statut, $recherche), $debut, MAX_AUTEURS_PAR_PAGE, $tri);
- $recherche = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $statut, MAX_AUTEURS_PAR_PAGE, $nombre_auteurs,$cherche);
+
+ $arg = ($statut ? ("&statut=" .urlencode($statut)) : '')
+ . ($cherche ? ("&recherche=" . urlencode($cherche)) : '');
+
+ $recherche = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $statut, MAX_AUTEURS_PAR_PAGE, $nombre_auteurs, $arg);
if ($cherche){
$cherche = htmlspecialchars($cherche);
@@ -80,7 +84,7 @@
$visiteurs ? _T('info_visiteurs') : _T('info_auteurs'),
"auteurs","redacteurs");
- echo bandeau_auteurs($tri, $visiteurs);
+ echo bandeau_auteurs($visiteurs);
echo $trouve, "<div class='nettoyeur'></div>";
@@ -91,9 +95,9 @@
}
// http://doc.spip.org/@bandeau_auteurs
-function bandeau_auteurs($tri, $visiteurs)
+function bandeau_auteurs($visiteurs)
{
- global $connect_id_auteur, $connect_statut, $connect_toutes_rubriques;
+ global $connect_id_auteur;
$ret = debut_gauche("auteurs",true) . debut_boite_info(true);
@@ -102,16 +106,16 @@
else
$ret .= "\n<p class='arial1'>"._T('info_gauche_auteurs'). '</p>';
- if ($connect_statut == '0minirezo')
+ if (autoriser('voir', 'auteur'))
$ret .= "\n<p class='arial1'>". _T('info_gauche_auteurs_exterieurs') . '</p>';
$ret .= fin_boite_info(true);
$ret .= pipeline('affiche_gauche',array('args'=>array('exec'=>'auteurs'),'data'=>''));
- if ($connect_statut == '0minirezo') {
+ if (autoriser('voir', 'auteur')) {
- if ($connect_toutes_rubriques)
+ if (autoriser('creer', 'auteur'))
$res = icone_horizontale(_T('icone_creer_nouvel_auteur'), generer_url_ecrire("auteur_infos", 'new=oui'), "auteur-24.gif", "creer.gif", false);
else $res = '';
@@ -174,13 +178,10 @@
}
// http://doc.spip.org/@auteurs_tranches
-function auteurs_tranches($auteurs, $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs, $cherche='')
+function auteurs_tranches($auteurs, $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs, $arg='')
{
global $spip_lang_right;
- $arg = ($statut ? ("&statut=" .urlencode($statut)) : '')
- . ($cherche ? ("&recherche=" . urlencode($cherche)) : '');
-
$res ="\n<tr class='titrem'>"
. "\n<th style='width: 20px'>";
@@ -292,37 +293,40 @@
// http://doc.spip.org/@requete_auteurs
function requete_auteurs($tri, $statut, $recherche=NULL)
{
- global $connect_statut, $spip_lang, $connect_id_auteur;
+ global $connect_id_auteur;
- //
- // Construire la requete
- //
-
// si on n'est pas minirezo, ignorer les auteurs sans article
// sauf les admins, toujours visibles.
// limiter les statuts affiches
- if ($connect_statut == '0minirezo') {
+ if (autoriser('voir', 'auteur')) {
if ($statut[0]=='!') {
$statut = substr($statut,1); $not = "NOT";
} else $not = '';
$visit = !statut_min_redac($statut);
$statut = preg_split('/\W+/', $statut);
- $sql_visible = sql_in("aut.statut", $statut, $not);
+ $where = sql_in("aut.statut", $statut, $not);
} else {
- $sql_visible = "(
+ $where = "(
aut.statut = '0minirezo'
OR aut.id_auteur=$connect_id_auteur
OR " . sql_in('art.statut', array('prop', 'publie'))
. ')';
$visit = false;
}
+ if ($recherche) $where .= " AND $recherche" ;
+ return requete_auteurs_tri($tri, $where, $visit);
+}
+
+function requete_auteurs_tri($tri, $where, $visit=false)
+{
+ global $spip_lang;
$sql_sel = '';
$join = $visit ?
""
:
- (strpos($sql_visible,'art.statut')?("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur" . " LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)"):"");
+ (strpos($where,'art.statut')?("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur" . " LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)"):"");
// tri
switch ($tri) {
@@ -332,7 +336,7 @@
$join = $visit ?
"LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur"
: ("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur"
- . (strpos($sql_visible,'art.statut')?" LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)":""));
+ . (strpos($where,'art.statut')?" LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)":""));
break;
case 'site':
@@ -361,9 +365,7 @@
"UPPER(aut.nom) AS unom",
$sql_sel),array('',null)),
'FROM' => "spip_auteurs AS aut $join",
- 'WHERE' => $sql_visible . ($recherche
- ? " AND $recherche"
- : ''),
+ 'WHERE' => $where,
'GROUP BY' => "aut.statut, aut.nom_site, aut.nom, aut.id_auteur",
'ORDER BY' => $sql_order);
}
diff -Nru spip-2.1.15/ecrire/inc/autoriser.php spip-2.1.16/ecrire/inc/autoriser.php
--- spip-2.1.15/ecrire/inc/autoriser.php 2012-06-12 10:32:34.000000000 -0400
+++ spip-2.1.16/ecrire/inc/autoriser.php 2012-07-03 11:31:38.000000000 -0400
@@ -356,6 +356,12 @@
AND !$qui['restreint'];
}
+function autoriser_auteur_creer_dist($faire, $type, $id, $qui, $opt) {
+ return
+ $qui['statut'] == '0minirezo'
+ AND !$qui['restreint'];
+}
+
// Autoriser a modifier un groupe de mots $id
// y compris en ajoutant/modifiant les mots lui appartenant
// http://doc.spip.org/@autoriser_groupemots_modifier_dist
diff -Nru spip-2.1.15/ecrire/inc/drapeau_edition.php spip-2.1.16/ecrire/inc/drapeau_edition.php
--- spip-2.1.15/ecrire/inc/drapeau_edition.php 2012-06-12 10:32:34.000000000 -0400
+++ spip-2.1.16/ecrire/inc/drapeau_edition.php 2012-07-03 11:31:38.000000000 -0400
@@ -69,7 +69,7 @@
// http://doc.spip.org/@signale_edition
function signale_edition ($id, $auteur, $type='article') {
$edition = lire_tableau_edition();
- if ($id_a = $auteur['id_auteur'])
+ if (isset($auteur['id_auteur']) and $id_a = $auteur['id_auteur'])
$nom = $auteur['nom'];
else
$nom = $id_a = $GLOBALS['ip'];
diff -Nru spip-2.1.15/ecrire/inc/lien.php spip-2.1.16/ecrire/inc/lien.php
--- spip-2.1.15/ecrire/inc/lien.php 2012-06-12 10:32:34.000000000 -0400
+++ spip-2.1.16/ecrire/inc/lien.php 2012-07-03 11:31:38.000000000 -0400
@@ -54,7 +54,13 @@
$class = "spip_mail";
elseif (preg_match('/^<html>/',$texte)) # cf traiter_lien_explicite
$class = "spip_url spip_out";
- elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
+ elseif (!$class) {
+ # spip_out sur les URLs externes
+ if (preg_match(',^\w+://,iS', $lien)
+ AND strncasecmp($lien, url_de_base(), strlen(url_de_base()))
+ )
+ $class = "spip_out"; # si pas spip_in|spip_glossaire
+ }
// Si l'objet n'est pas de la langue courante, on ajoute hreflang
if (!$hlang AND $lang!==$GLOBALS['spip_lang'])
diff -Nru spip-2.1.15/ecrire/inc/session.php spip-2.1.16/ecrire/inc/session.php
--- spip-2.1.15/ecrire/inc/session.php 2012-06-12 10:32:34.000000000 -0400
+++ spip-2.1.16/ecrire/inc/session.php 2012-07-03 11:31:38.000000000 -0400
@@ -103,6 +103,10 @@
time() + $duree
);
spip_log("ajoute session $fichier_session cookie $duree");
+
+ // purger au passage les vieux fichiers de session
+ supprimer_sessions(-1);
+
return $_COOKIE['spip_session'];
}
}
@@ -147,7 +151,7 @@
$GLOBALS['visiteur_session'] = $sauve;
// si c'est le meme, rafraichir les valeurs
- if ($auteur['id_auteur'] == $sauve['id_auteur'])
+ if (isset($sauve['id_auteur']) and $auteur['id_auteur'] == $sauve['id_auteur'])
verifier_session();
}
diff -Nru spip-2.1.15/ecrire/inc_version.php spip-2.1.16/ecrire/inc_version.php
--- spip-2.1.15/ecrire/inc_version.php 2012-06-12 10:32:39.000000000 -0400
+++ spip-2.1.16/ecrire/inc_version.php 2012-07-03 11:31:38.000000000 -0400
@@ -410,7 +410,7 @@
// numero de branche, utilise par les plugins
// pour specifier les versions de SPIP necessaire
// il faut s'en tenir a un nombre de decimales fixe ex : 2.0.0, 2.0.0-dev, 2.0.0-beta, 2.0.0-beta2
-$spip_version_branche = "2.1.15";
+$spip_version_branche = "2.1.16";
// version des signatures de fonctions PHP
// (= numero SVN de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes)
$spip_version_code = 15375;
diff -Nru spip-2.1.15/ecrire/public/compiler.php spip-2.1.16/ecrire/public/compiler.php
--- spip-2.1.15/ecrire/public/compiler.php 2012-06-12 10:32:39.000000000 -0400
+++ spip-2.1.16/ecrire/public/compiler.php 2012-07-03 11:31:38.000000000 -0400
@@ -969,6 +969,8 @@
$secondes = spip_timer('calcul_skel');
spip_log("COMPIL ($secondes) [$sourcefile] $nom.php");
+ // $connect n'est pas sûr : on nettoie
+ $connect = preg_replace(',[^\w],', '', $connect);
// Assimiler la fct principale a une boucle anonyme, c'est plus simple
$code = new Boucle;
diff -Nru spip-2.1.15/svn.revision spip-2.1.16/svn.revision
--- spip-2.1.15/svn.revision 2012-06-12 09:40:48.000000000 -0400
+++ spip-2.1.16/svn.revision 2012-07-03 11:11:27.000000000 -0400
@@ -1,10 +1,10 @@
<svn_revision>
<text_version>
-Origine: svn://trac.rezo.net/spip/tags/spip-2.1.15
-Revision: 19579
-Dernier commit: 2012-06-12 15:40:48 +0200
+Origine: svn://trac.rezo.net/spip/tags/spip-2.1.16
+Revision: 19678
+Dernier commit: 2012-07-03 17:11:27 +0200
</text_version>
-<origine>svn://trac.rezo.net/spip/tags/spip-2.1.15</origine>
-<revision>19579</revision>
-<commit>2012-06-12 15:40:48 +0200 </commit>
+<origine>svn://trac.rezo.net/spip/tags/spip-2.1.16</origine>
+<revision>19678</revision>
+<commit>2012-07-03 17:11:27 +0200 </commit>
</svn_revision>
\ Pas de fin de ligne à la fin du fichier.
Reply to: