]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
2005-08-09 Havoc Pennington <hp@redhat.com>
authorHavoc Pennington <hp@redhat.com>
Tue, 9 Aug 2005 21:36:55 +0000 (21:36 +0000)
committerHavoc Pennington <hp@redhat.com>
Tue, 9 Aug 2005 21:36:55 +0000 (21:36 +0000)
* dbus/dbus-errors.c: apply patch from Timo Teras to make a
malloc'd copy of the name parameter

ChangeLog
dbus/dbus-errors.c

index 6cd3ebe54488cac3d3d0654aea841aaf90c22d97..2c97b9b4bb58aee5769340e894e30917e4135a6a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-09  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-errors.c: apply patch from Timo Teras to make a
+       malloc'd copy of the name parameter
+
 2005-08-09  Havoc Pennington  <hp@redhat.com>
 
        * dbus/dbus-message.c (dbus_message_set_reply_serial): print
index 287b4d79ab63b2636a23747f8dd074fbe485194f..d37c068868fd6a49bc72af8f5688c80a7e2e28d1 100644 (file)
@@ -180,7 +180,10 @@ dbus_error_free (DBusError *error)
   real = (DBusRealError *)error;
 
   if (!real->const_message)
-    dbus_free (real->message);
+    {
+      dbus_free (real->name);
+      dbus_free (real->message);
+    }
 
   dbus_error_init (error);
 }
@@ -306,7 +309,7 @@ dbus_error_is_set (const DBusError *error)
  * @todo should be called dbus_error_set()
  *
  * @param error the error.
- * @param name the error name (not copied!!!)
+ * @param name the error name
  * @param format printf-style format string.
  */
 void
@@ -359,12 +362,17 @@ dbus_set_error (DBusError  *error,
       _dbus_string_free (&str);
       goto nomem;
     }
+  _dbus_string_free (&str);
   
-  real->name = name;
+  real->name = _dbus_strdup (name);
+  if (real->name == NULL)
+    {
+      dbus_free (real->message);
+      real->message = NULL;
+      goto nomem;
+    }
   real->const_message = FALSE;
 
-  _dbus_string_free (&str);
-
   return;
   
  nomem: