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) --- CHANGELOG | 1 + program/lib/Roundcube/rcube_user.php | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 71f41a4..d0aee48 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,7 @@ - Fix Compose action in addressbook for results from multiple addressbooks (#1490413) - Fix bug where some messages in multi-folder search couldn't be opened (#1490426) - Fix unintentional messages list page change on page switch in compose addressbook (#1490427) +- Fix race-condition in saving user preferences and loading plugin config (#1490431) RELEASE 1.1.2 ------------- 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