[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#595118: unblock: libusb/2:0.1.12-16



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package libusb

I have just uploaded a new libusb version which fixes a crash with some
devices that have non-common interface descriptors (Apple devices 
mainly).

The structure contains two pointers that are not always initialized to
NULL when the code leaves the while loop before the end. In that case 
calling free on the pointers later causes a crash.

This was in my inbox for sometime already and already used in some
distributions.


diff -u libusb-0.1.12/debian/control libusb-0.1.12/debian/control
--- libusb-0.1.12/debian/control
+++ libusb-0.1.12/debian/control
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Aurelien Jarno <aurel32@debian.org>
 Build-Depends: debhelper (>= 5.0.22), autotools-dev, pkg-config, docbook, docbook-dsssl, quilt
-Standards-Version: 3.8.4
+Standards-Version: 3.9.0
 
 Package: libusb-0.1-4
 Priority: important
diff -u libusb-0.1.12/debian/changelog libusb-0.1.12/debian/changelog
--- libusb-0.1.12/debian/changelog
+++ libusb-0.1.12/debian/changelog
@@ -1,3 +1,12 @@
+libusb (2:0.1.12-16) unstable; urgency=low
+
+  * Add debian/patches/07_altsetting_alloc.patch based on a patch from
+    Pawel Kot to fix crashes with some USB devices, due to calls to 
+    free() with uninitialized pointers.
+  * Upgraded policy compliance to 3.9.0 (no changes).
+
+ -- Aurelien Jarno <aurel32@debian.org>  Tue, 31 Aug 2010 20:01:39 +0200
+
 libusb (2:0.1.12-15) unstable; urgency=low
 
   * Don't include config.guess/config.sub in 91_autoreconf.diff (closes:
diff -u libusb-0.1.12/debian/patches/series libusb-0.1.12/debian/patches/series
--- libusb-0.1.12/debian/patches/series
+++ libusb-0.1.12/debian/patches/series
@@ -6,4 +6,5 @@
 05_emdebian_libs.diff
 06_bsd.diff
+07_altsetting_alloc.patch
 90_am_maintainer_mode.diff
 91_autoreconf.diff
only in patch2:
unchanged:
--- libusb-0.1.12.orig/debian/patches/07_altsetting_alloc.patch
+++ libusb-0.1.12/debian/patches/07_altsetting_alloc.patch
@@ -0,0 +1,33 @@
+--- a/descriptors.c
++++ b/descriptors.c
+@@ -177,6 +177,7 @@
+     }
+ 
+     ifp = interface->altsetting + interface->num_altsetting;
++    memset(ifp, 0, sizeof(struct usb_interface_descriptor));
+     interface->num_altsetting++;
+ 
+     usb_parse_descriptor(buffer, "bbbbbbbbb", ifp);
+@@ -219,10 +220,7 @@
+     /* Copy any unknown descriptors into a storage area for */
+     /*  drivers to later parse */
+     len = (int)(buffer - begin);
+-    if (!len) {
+-      ifp->extra = NULL;
+-      ifp->extralen = 0;
+-    } else {
++    if (len) {
+       ifp->extra = malloc(len);
+       if (!ifp->extra) {
+         if (usb_debug >= 1)
+@@ -277,8 +275,7 @@
+         parsed += retval;
+         size -= retval;
+       }
+-    } else
+-      ifp->endpoint = NULL;
++    }
+ 
+     /* We check to see if it's an alternate to this one */
+     ifp = (struct usb_interface_descriptor *)buffer;
+

Could you please unblock it? Thanks in advance.

unblock libusb/2:0.1.12-16

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

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



Reply to: