From a025e216c163cd265b0d372d8a50531c2978a9da Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Mon, 13 Dec 2010 08:17:08 +0000
Subject: [PATCH] Report de r16624

---
 ecrire/inc/meta.php | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index 60449d1b71..f92dd8d154 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -64,6 +64,7 @@ function lire_metas($table='meta') {
 		$GLOBALS[$table] = array();
 		while ($row = sql_fetch($result))
 			$GLOBALS[$table][$row['nom']] = $row['valeur'];
+        sql_free($result);
 
 		if (!$GLOBALS[$table]['charset']
 		  OR $GLOBALS[$table]['charset']=='_DEFAULT_CHARSET' // hum, correction d'un bug ayant abime quelques install
@@ -128,18 +129,21 @@ function ecrire_meta($nom, $valeur, $importable = NULL, $table='meta') {
 		$GLOBALS[$table][$nom] = $valeur;
 		return;
 	}
-	$res = sql_fetch($res);
+	$row = sql_fetch($res);
+    sql_free($res);
+
 	// ne pas invalider le cache si affectation a l'identique
 	// (tant pis si impt aurait du changer)
-	if ($res AND $valeur == $res['valeur'] AND $GLOBALS[$table][$nom] == $valeur) return;
+	if ($row AND $valeur == $row['valeur'] AND $GLOBALS[$table][$nom] == $valeur) return;
+
 	$GLOBALS[$table][$nom] = $valeur;
 	// cf effacer pour comprendre le double touch
 	$antidate = time() - (_META_CACHE_TIME<<1);
 	if (!isset($touch[$table])) {touch_meta($antidate, $table);}
 	$r = array('nom' => $nom, 'valeur' => $valeur);
 	// Gaffe aux tables sans impt (vieilles versions de SPIP notamment)
-	if ($importable AND isset($res['impt'])) $r['impt'] = $importable;
-	if ($res) {
+	if ($importable AND isset($row['impt'])) $r['impt'] = $importable;
+	if ($row) {
 		sql_updateq('spip_' . $table, $r,"nom=" . sql_quote($nom));
 	} else {
 		sql_insertq('spip_' . $table, $r);
-- 
GitLab