Your message dated Sat, 29 Dec 2007 13:03:44 +0100
with message-id <[EMAIL PROTECTED]>
and subject line fixd in libdbus-ruby 0.2.1-1
has caused the attached Bug report 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 I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: libdbus-ruby
Version: 0.2.0-1
Severity: normal
Tags: patch

In dbus/message.rb, the MESSAGE_SIGNATURE constant, determining the
signature of a message header, is defined as "yyyyuua(yyv)".  There is
an extra "y" element in the final array.  According to the D-Bus
specification[1], version 0.12, the correct signature is
"yyyyuua(yv)".

This is coupled with a bug in the variant parsing that counteracts the
former bug for message headers only, while breaking parsing of
variants in every other case.  For variants, the length byte is
erroneously treated as part of the type signature string; the
MESSAGE_SIGNATURE for headers is off by one byte in the other
direction, which makes the byte get skipped and thrown away anyway,
but trying to parse other variants chokes horribly.

A patch is attached that appears to fix this.

[1] http://dbus.freedesktop.org/doc/dbus-specification.html

   ---> Drake Wilson

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22.2 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libdbus-ruby depends on:
ii  libdbus-ruby1.8               0.2.0-1    Ruby 1.8 binding for D-Bus

libdbus-ruby recommends no packages.

-- no debconf information
diff -ur libdbus-ruby-0.2.0/lib/dbus/marshall.rb 
libdbus-ruby-new/lib/dbus/marshall.rb
--- libdbus-ruby-0.2.0/lib/dbus/marshall.rb     2007-05-26 06:43:50.000000000 
-0500
+++ libdbus-ruby-new/lib/dbus/marshall.rb       2007-12-16 10:11:19.000000000 
-0600
@@ -202,7 +202,7 @@
           packet << do_parse(elem)
         end
       when Type::VARIANT
-        string = get_nul_terminated
+        string = get_signature
         # error checking please
         sig = Type::Parser.new(string).parse[0]
         packet = do_parse(sig)
diff -ur libdbus-ruby-0.2.0/lib/dbus/message.rb 
libdbus-ruby-new/lib/dbus/message.rb
--- libdbus-ruby-0.2.0/lib/dbus/message.rb      2007-04-25 16:29:26.000000000 
-0500
+++ libdbus-ruby-new/lib/dbus/message.rb        2007-12-16 10:06:43.000000000 
-0600
@@ -21,7 +21,7 @@
     # Mutex that protects updates on the serial number.
     @@serial_mutex = Mutex.new
     # Type of a message (by specification).
-    MESSAGE_SIGNATURE = "yyyyuua(yyv)"
+    MESSAGE_SIGNATURE = "yyyyuua(yv)"
 
     # FIXME: following message type constants should be under Message::Type IMO
     # well, yeah sure
@@ -220,21 +220,21 @@
       headers.each do |struct|
         case struct[0]
         when PATH
-          @path = struct[2]
+          @path = struct[1]
         when INTERFACE
-          @interface = struct[2]
+          @interface = struct[1]
         when MEMBER
-          @member = struct[2]
+          @member = struct[1]
         when ERROR_NAME
-          @error_name = struct[2]
+          @error_name = struct[1]
         when REPLY_SERIAL
-          @reply_serial = struct[2]
+          @reply_serial = struct[1]
         when DESTINATION
-          @destination = struct[2]
+          @destination = struct[1]
         when SENDER
-          @sender = struct[2]
+          @sender = struct[1]
         when SIGNATURE
-          @signature = struct[2]
+          @signature = struct[1]
         end
       end
       pu.align(8)

--- End Message ---
--- Begin Message ---
Source: libdbus-ruby
Source-Version: 0.2.1-1

We believe that the bug you reported is fixed in the latest version of
libdbus-ruby, which is due to be installed in the Debian FTP archive:

libdbus-ruby1.8_0.2.1-1_all.deb
  to pool/main/libd/libdbus-ruby/libdbus-ruby1.8_0.2.1-1_all.deb
libdbus-ruby_0.2.1-1.diff.gz
  to pool/main/libd/libdbus-ruby/libdbus-ruby_0.2.1-1.diff.gz
libdbus-ruby_0.2.1-1.dsc
  to pool/main/libd/libdbus-ruby/libdbus-ruby_0.2.1-1.dsc
libdbus-ruby_0.2.1-1_all.deb
  to pool/main/libd/libdbus-ruby/libdbus-ruby_0.2.1-1_all.deb
libdbus-ruby_0.2.1.orig.tar.gz
  to pool/main/libd/libdbus-ruby/libdbus-ruby_0.2.1.orig.tar.gz

A summary of the changes between this version and the previous one is
attached.  Thank you for reporting the bugs.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Sat, 29 Dec 2007 01:25:19 +0100
Source: libdbus-ruby
Binary: libdbus-ruby1.8 libdbus-ruby
Architecture: source all
Version: 0.2.1-1
Distribution: unstable
Urgency: low
Maintainer: Paul van Tilburg <[EMAIL PROTECTED]>
Changed-By: Paul van Tilburg <[EMAIL PROTECTED]>
Description: 
 libdbus-ruby - Ruby binding for D-Bus
 libdbus-ruby1.8 - Ruby 1.8 binding for D-Bus
Changes: 
 libdbus-ruby (0.2.1-1) unstable; urgency=low
 .
   * New upstream release.
   * Bumped standards version to 3.7.3; no changes required.
   * Added Homepage and Vcs-* fields.
Files: 
 dfb0101c10b746fb386d3d663235a547 1020 libs optional libdbus-ruby_0.2.1-1.dsc
 1f6398d8bbafa272c0b43878fec43276 56197 libs optional 
libdbus-ruby_0.2.1.orig.tar.gz
 f1289c069d9bbb430b5c89ae2dbf7de4 1681 libs optional 
libdbus-ruby_0.2.1-1.diff.gz
 13ea29f17baae9c5538d58d0012a91c8 24650 libs optional 
libdbus-ruby_0.2.1-1_all.deb
 3bd424505a5ba38d2628909dfa426a71 28302 libs optional 
libdbus-ruby1.8_0.2.1-1_all.deb

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

iD8DBQFHdZY/JBBhylAGQYERAhGoAJ0QM6EHBwREheeHXiC0wtXsdTHSxACeM7E7
yqDCvmbdkTFxxXYJ5IfsYCM=
=sV4z
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to