[pkg-horde] Bug#538027: horde3: saving prefs to files preserves the dirty flag

Aleš Smodiš aless at guru.si
Wed Jul 22 15:16:58 UTC 2009

Package: horde3
Version: 3.2.2+debian0-2
Severity: normal
Tags: patch

The file backend of the Prefs subsystem (lib/Horde/Prefs/file.php) dumps
the content to a file as it is represented in memory (cache), including
the dirty flag. This has as a consequence that everything marked dirty
may prevent the user from subsequent changes: if there's another instance
of the Prefs class that's destroying after the instance that made the
changes, the changes will be overwritten with the original content and
seemingly nothing will have changed. I stumbled upon the bug when trying
out the cyrus, imp and kolab: I set up e-mail filters, but after logging
out and again logging in I couldn't add any more filters: they were added
in the GUI, but in fact they weren't written to the disk, which could be
confirmed by a logout/login cycle.
I changed the relevant file (lib/Horde/Prefs/file.php) so, that the
store() function clears dirty flags before writing the content to the
file. This removes the bug.
The relevant patch is attached.

-- System Information:
Debian Release: 5.0.1
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=sl_SI.UTF-8, LC_CTYPE=sl_SI.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages horde3 depends on:
ii  apache2-mpm-prefor 2.2.9-10+lenny2       Apache HTTP Server - traditional n
ii  libapache2-mod-php 5.2.6.dfsg.1-1+lenny3 server-side, HTML-embedded scripti
ii  libjs-scriptaculou 1.8.1-5               JavaScript library for dynamic web
ii  php-log            1.10.0-1              Log module for PEAR
ii  php-mail           1.1.14-1              PHP PEAR module for sending email
ii  php-mail-mime      1.5.2-0.1             PHP PEAR module for creating MIME 
ii  php5-gd            5.2.6.dfsg.1-1+lenny3 GD module for php5
ii  php5-mcrypt        5.2.6.dfsg.1-1+lenny3 MCrypt module for php5

Versions of packages horde3 recommends:
ii  fckeditor          1:2.6.2-1             rich text format javascript web ed
ii  locales            2.7-18                GNU C Library: National Language (
ii  logrotate          3.7.1-5               Log rotation utility
ii  php-date           1.4.7-1               PHP PEAR module for date and time 
ii  php-db             1.7.13-2              PHP PEAR Database Abstraction Laye
ii  php-file           1.3.0-1               PHP Pear modules for common file a
ii  php-services-weath 1.4.2-2               acts as an interface to various on
ii  php5-cli           5.2.6.dfsg.1-1+lenny3 command-line interpreter for the p
ii  php5-ldap          5.2.6.dfsg.1-1+lenny3 LDAP module for php5
ii  php5-mysql         5.2.6.dfsg.1-1+lenny3 MySQL module for php5
ii  tinymce2           2.1.3-1               platform independent web based Jav

Versions of packages horde3 suggests:
pn  chora2             <none>                (no description available)
pn  enscript           <none>                (no description available)
pn  gettext            <none>                (no description available)
pn  gollem             <none>                (no description available)
ii  imp4               4.2-4                 webmail component for horde framew
ii  kronolith2         2.2-1                 calendar component for Horde Frame
pn  libgeoip1          <none>                (no description available)
pn  libwpd-tools       <none>                (no description available)
ii  mnemo2             2.2-2                 notes/memos component for Horde Fr
ii  php-net-imap       1.1.0beta2-1.1        PHP PEAR module implementing IMAP 
pn  php5-auth-pam      <none>                (no description available)
ii  php5-mhash         5.2.6.dfsg.1-1+lenny3 MHASH module for php5
pn  ppthtml            <none>                (no description available)
pn  rpm                <none>                (no description available)
pn  source-highlight   <none>                (no description available)
ii  turba2             2.2.1-2               contact management component for h
pn  unrtf              <none>                (no description available)
pn  webcpp             <none>                (no description available)
pn  wv                 <none>                (no description available)
pn  xlhtml             <none>                (no description available)

-- no debconf information
-------------- next part --------------
--- lib/Horde/Prefs/file.php.orig	2008-09-10 12:31:51.000000000 +0200
+++ lib/Horde/Prefs/file.php	2009-07-22 16:56:27.000000000 +0200
@@ -209,6 +209,7 @@
                 $this->_file_cache[$scope][$name] = $pref;
+                $this->_file_cache[$scope][$name]['m'] &= ~_PREF_DIRTY;

More information about the pkg-horde-hackers mailing list