Package: bluez-pin
Version: 0.30-2
Severity: important
Tags: patch
Hi,
When bluez-pin is used with --dbus it just crashed upon the first pin
request. This caused by reading data from an dbus message array without
first recursing into it. Fixed in attached patch
Sjoerd
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (101, 'experimental')
Architecture: powerpc (ppc)
Shell: /bin/sh linked to /bin/dash
Kernel: Linux 2.6.16-1-powerpc
Locale: LANG=C, LC_CTYPE=nl_NL (charmap=ISO-8859-1)
Versions of packages bluez-pin depends on:
ii libatk1.0-0 1.11.4-1 The ATK accessibility toolkit
ii libbluetooth1 2.25-1 Library to use the BlueZ Linux Blu
ii libc6 2.3.6-7 GNU C Library: Shared libraries
ii libcairo2 1.0.4-1+b1 The Cairo 2D vector graphics libra
ii libdbus-1-2 0.61-5 simple interprocess messaging syst
ii libdbus-glib-1-2 0.61-5 simple interprocess messaging syst
ii libfontconfig1 2.3.2-5.1 generic font configuration library
ii libgconf2-4 2.14.0-1 GNOME configuration database syste
ii libglade2-0 1:2.5.1-2 library to load .glade files at ru
ii libglib2.0-0 2.10.2-1 The GLib library of C routines
ii libgtk2.0-0 2.8.17-1 The GTK+ graphical user interface
ii liborbit2 1:2.14.0-1 libraries for ORBit2 - a CORBA ORB
ii libpango1.0-0 1.12.1-2 Layout and rendering of internatio
ii libx11-6 2:1.0.0-6 X11 client-side library
ii libxcursor1 1.1.5.2-3 X cursor management library
ii libxext6 1:1.0.0-3 X11 miscellaneous extension librar
ii libxi6 1:1.0.0-3 X11 Input extension library
ii libxinerama1 1:1.0.1-2 X11 Xinerama extension library
ii libxml2 2.6.23.dfsg.2-3 GNOME XML library
ii libxrandr2 2:1.1.0.2-3 X11 RandR extension library
ii libxrender1 1:0.9.0.2-3 X Rendering Extension client libra
ii zlib1g 1:1.2.3-11 compression library - runtime
bluez-pin recommends no packages.
-- no debconf information
--- /home/sjoerd/Debian/build-area/bluez-pin-0.30/pin-dbus.c 2005-12-26 16:03:42.000000000 +0100
+++ pin-dbus.c 2006-04-19 00:16:48.000000000 +0200
@@ -71,8 +71,8 @@
DBusHandlerResult
bluez_pin_handle_dbus_request (DBusConnection *connection, DBusMessage *message)
{
- DBusMessageIter iter;
- gboolean out;
+ DBusMessageIter iter, aiter;
+ dbus_bool_t out;
bdaddr_t bdaddr, sbdaddr;
int type;
char *address;
@@ -109,8 +109,10 @@
#ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
nbytes = 0;
- if (type == DBUS_TYPE_ARRAY)
- dbus_message_iter_get_fixed_array (&iter, &bytes, &nbytes);
+ if (type == DBUS_TYPE_ARRAY) {
+ dbus_message_iter_recurse(&iter, &aiter);
+ dbus_message_iter_get_fixed_array (&aiter, &bytes, &nbytes);
+ }
if (nbytes != sizeof (bdaddr))
#else
if (type != DBUS_TYPE_ARRAY