Your message dated Thu, 06 Jun 2013 01:48:18 +0000
with message-id <[email protected]>
and subject line Bug#699424: fixed in gconf 3.2.6-1
has caused the Debian Bug report #699424,
regarding libgconf-2-4: Use after free in gconf-dbus
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
699424: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699424
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libgconf-2-4
Version: 3.2.5-1
Severity: important
Tags: upstream fixed-upstream patch
Control: forwarded -1 https://bugzilla.gnome.org/show_bug.cgi?id=667167
Control: affects evolution

Dear Debian folks,


the upstream GConf master branch contains a fix for a use after free in
gconf-dbus [1]. This could crash Evolution/Evolution Data Server.

I am going to apply that upstream patch to the Debian package.


Thanks,

Paul


[1] 
http://git.gnome.org/browse/gconf/commit/?id=84884e9df7ce8c081a1c223c66a799b82545ff1e

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-4-686-pae (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libgconf-2-4 depends on:
ii  gconf2-common      3.2.5-1
ii  libc6              2.13-38
ii  libdbus-1-3        1.6.8-1
ii  libdbus-glib-1-2   0.100-1
ii  libglib2.0-0       2.33.12+really2.32.4-5
ii  multiarch-support  2.13-38

Versions of packages libgconf-2-4 recommends:
ii  gconf-service  3.2.5-1.1

libgconf-2-4 suggests no packages.

-- no debconf information
From 84884e9df7ce8c081a1c223c66a799b82545ff1e Mon Sep 17 00:00:00 2001
From: Milan Crha <[email protected]>
Date: Thu, 18 Oct 2012 16:08:02 -0400
Subject: [PATCH] gconf-dbus: fix use after free

gconf_engine_get_fuller is accessing freed memory.
The problem is that it's referencing strings that are owned
by a D-Bus message, and they go away when the D-Bus message is freed.

This commit addresses the problem by duplicating the strings and
freeing them later.

https://bugzilla.gnome.org/show_bug.cgi?id=667167
---
 gconf/gconf-dbus-utils.c |   10 +++++-----
 gconf/gconf-dbus.c       |    9 ++++++---
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/gconf/gconf-dbus-utils.c b/gconf/gconf-dbus-utils.c
index 6fd5bfa..92f5980 100644
--- a/gconf/gconf-dbus-utils.c
+++ b/gconf/gconf-dbus-utils.c
@@ -569,11 +569,11 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter  *main_iter,
 				   gchar           **schema_name_p)
 {
   DBusMessageIter  struct_iter;
-  gchar           *key;
+  const gchar     *key;
   GConfValue      *value;
   gboolean         is_default;
   gboolean         is_writable;
-  gchar           *schema_name;
+  const gchar     *schema_name;
 
   g_return_val_if_fail (dbus_message_iter_get_arg_type (main_iter) == DBUS_TYPE_STRUCT,
 			FALSE);
@@ -587,7 +587,7 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter  *main_iter,
   value = utils_get_value (&struct_iter);
 
   dbus_message_iter_next (&struct_iter);
-  schema_name = (gchar *) utils_get_optional_string (&struct_iter);
+  schema_name = utils_get_optional_string (&struct_iter);
 
   dbus_message_iter_next (&struct_iter);
   dbus_message_iter_get_basic (&struct_iter, &is_default);
@@ -596,7 +596,7 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter  *main_iter,
   dbus_message_iter_get_basic (&struct_iter, &is_writable);
 
   if (key_p)
-    *key_p = key;
+    *key_p = g_strdup (key);
 
   if (value_p)
     *value_p = value;
@@ -604,7 +604,7 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter  *main_iter,
     gconf_value_free (value);
 
   if (schema_name_p)
-    *schema_name_p = schema_name;
+    *schema_name_p = g_strdup (schema_name);
   
   if (is_default_p)
     *is_default_p = is_default;
diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c
index f167fc5..5610fcf 100644
--- a/gconf/gconf-dbus.c
+++ b/gconf/gconf-dbus.c
@@ -1252,12 +1252,13 @@ gconf_engine_get_fuller (GConfEngine *conf,
   
   if (schema_name && schema_name[0] != '/')
     {
+      g_free (schema_name);
       schema_name = NULL;
     }
   
   if (schema_name_p)
-    *schema_name_p = g_strdup (schema_name);
-  
+    *schema_name_p = schema_name;
+
   return val;
 }
 
@@ -2402,7 +2403,7 @@ handle_notify (DBusConnection *connection,
 	       GConfEngine *conf2)
 {
   GConfEngine *conf;
-  gchar *key, *schema_name;
+  gchar *key = NULL, *schema_name = NULL;
   gboolean is_default, is_writable;
   DBusMessageIter iter;
   GConfValue *value;
@@ -2466,6 +2467,8 @@ handle_notify (DBusConnection *connection,
 
   if (value)
     gconf_value_free (value);
+  g_free (key);
+  g_free (schema_name);
 
   if (!match)
     return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-- 
1.7.10.4

Attachment: signature.asc
Description: This is a digitally signed message part


--- End Message ---
--- Begin Message ---
Source: gconf
Source-Version: 3.2.6-1

We believe that the bug you reported is fixed in the latest version of
gconf, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael Biebl <[email protected]> (supplier of updated gconf package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 06 Jun 2013 03:29:17 +0200
Source: gconf
Binary: gconf2 gconf-service gconf2-common gconf-defaults-service libgconf-2-4 
libgconf2-4 libgconf2-dev libgconf2-doc gir1.2-gconf-2.0 gconf-gsettings-backend
Architecture: source all amd64
Version: 3.2.6-1
Distribution: unstable
Urgency: low
Maintainer: Josselin Mouette <[email protected]>
Changed-By: Michael Biebl <[email protected]>
Description: 
 gconf-defaults-service - GNOME configuration database system (system defaults 
service)
 gconf-gsettings-backend - GNOME configuration database system - GSettings 
back-end
 gconf-service - GNOME configuration database system (D-Bus service)
 gconf2     - GNOME configuration database system (support tools)
 gconf2-common - GNOME configuration database system (common files)
 gir1.2-gconf-2.0 - GNOME configuration database system (GObject-Introspection)
 libgconf-2-4 - GNOME configuration database system (shared libraries)
 libgconf2-4 - GNOME configuration database system (dummy package)
 libgconf2-dev - GNOME configuration database system (development)
 libgconf2-doc - GNOME configuration database system (API reference)
Closes: 699424
Changes: 
 gconf (3.2.6-1) unstable; urgency=low
 .
   [ Martin Pitt ]
   * Add a simple compile/link/run autopkgtest for libgconf2-dev. Thanks Rafał
     Cieślak! (LP: #1078719)
   * debian/tests/build:
     - Add -Wall -Werror for being more thorough.
     - Don't call deprecated g_type_init() when building with glib >= 2.35.
 .
   [ Michael Biebl ]
   * New upstream release.
     - Fixes use after free in gconf-dbus. Closes: #699424
   * Remove 04_manpage.patch, merged upstream. Refresh other patches.
   * Add symbols file for libgconf-2-4.
   * Bump Standards-Version to 3.9.4. No further changes.
Checksums-Sha1: 
 bcea5b35278fc23d71959f582e826bb3350e70e3 2900 gconf_3.2.6-1.dsc
 a90d3ac08dc454f927c8d3024f52d4d57e3ff613 1559904 gconf_3.2.6.orig.tar.xz
 201451d0f259b4fdb31c9989fdaec3d4bb58c904 28906 gconf_3.2.6-1.debian.tar.gz
 5f5925b46272a3a850ee10c707a0cb3e4f3ca0b2 1041240 gconf2-common_3.2.6-1_all.deb
 058be7180d2ae800ebf40b2d4037d9b7a3ace548 415512 libgconf2-doc_3.2.6-1_all.deb
 82fb82462593ed9cb8a422b298290d2c106793a5 422860 gconf2_3.2.6-1_amd64.deb
 588a79a16b53ee2c416b930a826f895d5af631d0 411880 gconf-service_3.2.6-1_amd64.deb
 056288bd16be2f7c181604cd3b21afd44ee3f756 372446 
gconf-defaults-service_3.2.6-1_amd64.deb
 20235079cf92f44008bc2a5247a9abfb3c922559 424544 libgconf-2-4_3.2.6-1_amd64.deb
 e913db3913dd1387894107488aaaf9c12afe4654 357588 libgconf2-4_3.2.6-1_amd64.deb
 e5915547cbc37ef6902a3bf2190a87929bbd528e 446992 libgconf2-dev_3.2.6-1_amd64.deb
 1c78d3afef435ee6fa38e9a61a81adfb92ad9d73 361754 
gir1.2-gconf-2.0_3.2.6-1_amd64.deb
 6419c6ccef93ce9c7d64a2a046cf0dfdb879ae67 364668 
gconf-gsettings-backend_3.2.6-1_amd64.deb
Checksums-Sha256: 
 02f2ed3515111976114bdf92e2c3827f17608860d990ad1eecc72899c9252ce6 2900 
gconf_3.2.6-1.dsc
 1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c 1559904 
gconf_3.2.6.orig.tar.xz
 c3e406abc788289fa98f4a8cac88442054d294c429e1ca53282a529f746eb2d7 28906 
gconf_3.2.6-1.debian.tar.gz
 5bca1f4f02b308e3bb019bb4bcc588479f02bac5fded051d5a84ef49ae5991da 1041240 
gconf2-common_3.2.6-1_all.deb
 45db301d5adb04232af979b07fc8b6022c648f5eb62c619a24da899c6c664900 415512 
libgconf2-doc_3.2.6-1_all.deb
 9ffdb57558b801d0980b8a8564836214c950e17c576aefdf1985a13aa9505f9a 422860 
gconf2_3.2.6-1_amd64.deb
 3905e9b79c07c3f57efe9dcacde3b26d20a2a6f34221d25a15b446aef76062c7 411880 
gconf-service_3.2.6-1_amd64.deb
 91715cbbb41e6de6bfd83de3feea496d27b69b247a6fc193d10874dc827f4fe0 372446 
gconf-defaults-service_3.2.6-1_amd64.deb
 7baf9f12cab1ae752aa2b03de7c39b868beeff51edb008a5985a108f15463f36 424544 
libgconf-2-4_3.2.6-1_amd64.deb
 3777296f25b4bf12639860e369d207aba8e94449332548682bab9dd1eca0073c 357588 
libgconf2-4_3.2.6-1_amd64.deb
 d8f6ec9eca6d03f6a8deb7a63b5082d62b2691320f24803172fdc0ff496e9ae0 446992 
libgconf2-dev_3.2.6-1_amd64.deb
 b0ccc536cd1141b4dec6e9a52fe55f23e867949e9a8cd2cb26dd648f3ac81c85 361754 
gir1.2-gconf-2.0_3.2.6-1_amd64.deb
 8947e831cd17da7fe58c240bc9f6398e6f02e2acafbce0b10198387e4c3b331c 364668 
gconf-gsettings-backend_3.2.6-1_amd64.deb
Files: 
 df80e858e82d17dff2899104ce72b61c 2900 libs optional gconf_3.2.6-1.dsc
 2b16996d0e4b112856ee5c59130e822c 1559904 libs optional gconf_3.2.6.orig.tar.xz
 a49301d481ffedaba81fc0c35c6ff5ee 28906 libs optional 
gconf_3.2.6-1.debian.tar.gz
 690e144039c303dc001ad1275323edb2 1041240 libs optional 
gconf2-common_3.2.6-1_all.deb
 1732466eae885709dc980e01f69aafb1 415512 doc optional 
libgconf2-doc_3.2.6-1_all.deb
 82e469a542d33a9a2cdef7b39977f433 422860 libs optional gconf2_3.2.6-1_amd64.deb
 d66e25cc4d070ae1ff76ce8e16c54661 411880 libs optional 
gconf-service_3.2.6-1_amd64.deb
 e0512b8a0984ae83b15332a8992645ed 372446 libs optional 
gconf-defaults-service_3.2.6-1_amd64.deb
 0752b8ea46a5d6f4a65b038b6b8746ce 424544 libs optional 
libgconf-2-4_3.2.6-1_amd64.deb
 d546699199f2d710e6332bbd2deca841 357588 oldlibs optional 
libgconf2-4_3.2.6-1_amd64.deb
 cee0d94a3937db075a1585681a77eaf7 446992 libdevel optional 
libgconf2-dev_3.2.6-1_amd64.deb
 6cbe1ed035dbbaca4a60513b3b57916f 361754 introspection optional 
gir1.2-gconf-2.0_3.2.6-1_amd64.deb
 c19731f38c1f2a9f2d8ec389c6313e70 364668 libs extra 
gconf-gsettings-backend_3.2.6-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJRr+bbAAoJEGrh3w1gjyLcJIcP/RJ2Ji+3FKo5xuDQU+noQHbW
ypRsE1HKXBhV4T1lImRZkNxzLaCsfMg/PWwMPflQVYCwW8sDBZTZd/V8Kl+4xTId
9ryI+skSBeU/UkjPkwWqN+5uQju+ZGq+sYxDqJjapJNbXxxQCRdiblP14rAk+Z6Z
koBYuofyIfvdZuu5HGHpOda5csq3vcSiNjM/I4ZZKeHmeYX7DrX4NqxcnJ+OLj6A
06i3LFxDfDwOgfjJ1bkGSK8wOeGeeSkqIIAGReLGRTQ1JH8Pxw9syRwbJRRdWWTq
RWAJoL0/HvUk8uCM+r14ikb45rfr/TS2k7tBKcKBhvim41fn6dT0dAMhgWXNhtZa
Vy/gbwdTQhsSNrZ+0l3aMl0jOu4w/typx9F5l4MG78FyTFxH5EiCYXlfM1975JZR
TyAey/+EF+uz/F1cBPrySIYPpD3DDDEbI8GQLR9FN7i5dUcYtYOlmnKABn4WNJj8
9hmi4n/vXFH/w7gamngkRcp46s44s1r9tIxpQmxS3FzJ/DZckIVcva9szVMkfUf8
2edRk/fchF1EC24dAKguku6izldYyaOMG0Rb3c+e0OrYafjjonN7ortBfF5HSuMZ
e3ICz2KK5A1POqkjXs4u0rj1+OR7WtKh6pBt0Q7KOmD7GyAyYNN145ki2KkzCez1
DSpvlI1Uxuzn3P7RTnSU
=nFEy
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to