$OpenBSD: patch-dbus_dbus-string_c,v 1.1 2013/07/20 13:10:29 ajacoutot Exp $

From 8eb29fda102be3bd27b04a0b2d7f53a4dfb01f62 Mon Sep 17 00:00:00 2001
From: Chengwei Yang <chengwei.yang@intel.com>
Date: Thu, 20 Jun 2013 09:24:04 +0000
Subject: DBusString: fix may crash if try to free an uninitialized str

From 32e5cab56a6707cf897f918999720ff7e455255e Mon Sep 17 00:00:00 2001
From: Chengwei Yang <chengwei.yang@intel.com>
Date: Sat, 29 Jun 2013 03:56:20 +0000
Subject: Fix: a non ascii byte will trigger BadAddress error

--- dbus/dbus-string.c.orig	Sat Jul 20 14:21:21 2013
+++ dbus/dbus-string.c	Sat Jul 20 14:22:16 2013
@@ -246,6 +246,14 @@ _dbus_string_free (DBusString *str)
   
   if (real->constant)
     return;
+
+  /* so it's safe if @p str returned by a failed
+   * _dbus_string_init call
+   * Bug: https://bugs.freedesktop.org/show_bug.cgi?id=65959
+   */
+  if (real->str == NULL)
+    return;
+
   dbus_free (real->str - real->align_offset);
 
   real->invalid = TRUE;
@@ -2220,7 +2228,7 @@ _dbus_string_starts_with_c_str (const DBusString *a,
  */
 dbus_bool_t
 _dbus_string_append_byte_as_hex (DBusString *str,
-                                 int         byte)
+                                 unsigned char byte)
 {
   const char hexdigits[16] = {
     '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
