From 896cfe62ba43232defa369783f7779248f52ee78 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 7 Jan 2012 23:42:36 +0100
Subject: [PATCH] Fix: conf file corrupted when using password with special
 char

---
 htdocs/admin/security.php        | 3 ++-
 htdocs/core/lib/security.lib.php | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php
index b65674a07c6..57a28226527 100644
--- a/htdocs/admin/security.php
+++ b/htdocs/admin/security.php
@@ -427,7 +427,8 @@ print '</form>';
 
 print '</div>';
 
-$db->close();
 
 llxFooter();
+
+$db->close();
 ?>
diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php
index a189fa8de6d..2dfe55ae0eb 100644
--- a/htdocs/core/lib/security.lib.php
+++ b/htdocs/core/lib/security.lib.php
@@ -416,11 +416,11 @@ function encodedecode_dbpassconf($level=0)
 				// Add value at end of file
 				if ($level == 0)
 				{
-					$config .= '$dolibarr_main_db_pass="'.$passwd.'";'."\n";
+					$config .= '$dolibarr_main_db_pass=\''.$passwd.'\';'."\n";
 				}
 				if ($level == 1)
 				{
-					$config .= '$dolibarr_main_db_pass="crypted:'.$passwd_crypted.'";'."\n";
+					$config .= '$dolibarr_main_db_pass=\'crypted:'.$passwd_crypted.'\';'."\n";
 				}
 
 				//print 'passwd = '.$passwd.' - passwd_crypted = '.$passwd_crypted;
@@ -437,7 +437,7 @@ function encodedecode_dbpassconf($level=0)
 		$file=DOL_DOCUMENT_ROOT.'/conf/conf.php';
 		if ($fp = @fopen($file,'w'))
 		{
-			fputs($fp, $config, dol_strlen($config));
+			fputs($fp, $config);
 			fclose($fp);
 			// It's config file, so we set read permission for creator only.
 			// Should set permission to web user and groups for users used by batch
-- 
GitLab