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