From 26a00e76bed78b67443d22faf5664967ce96cbf7 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 16 Jun 2015 05:39:55 -0400
Subject: [PATCH] Fix race-condition in saving user preferences and loading plugin config (#1490431)

---
 program/lib/Roundcube/rcube_user.php |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/program/lib/Roundcube/rcube_user.php b/program/lib/Roundcube/rcube_user.php
index 528095f..ac245d3 100644
--- a/program/lib/Roundcube/rcube_user.php
+++ b/program/lib/Roundcube/rcube_user.php
@@ -195,8 +195,9 @@
 
         // don't save prefs with default values if they haven't been changed yet
         foreach ($a_user_prefs as $key => $value) {
-            if ($value === null || (!isset($old_prefs[$key]) && ($value == $config->get($key))))
+            if ($value === null || (!isset($old_prefs[$key]) && ($value == $config->get($key)))) {
                 unset($save_prefs[$key]);
+            }
         }
 
         $save_prefs = serialize($save_prefs);
@@ -217,7 +218,7 @@
             $this->data['preferences'] = $save_prefs;
 
             if (!$no_session) {
-                $config->set_user_prefs($a_user_prefs);
+                $config->set_user_prefs($this->prefs);
 
                 if (isset($_SESSION['preferences'])) {
                     $this->rc->session->remove('preferences');
@@ -235,7 +236,7 @@
         ) {
             $_SESSION['preferences'] = $save_prefs;
             $_SESSION['preferences_time'] = time();
-            $config->set_user_prefs($a_user_prefs);
+            $config->set_user_prefs($this->prefs);
             $this->data['preferences'] = $save_prefs;
         }
 

--
Gitblit v1.9.1