Package: release.debian.org Severity: normal User: [email protected] 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 <[email protected]> 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 <[email protected]> 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 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

