[libusb1] fixes USB access error message handling

jvcelak jvcelak at fedoraproject.org
Tue Sep 14 14:53:24 UTC 2010


commit b958d5184165a887534b424ea487b5d77ee1207f
Author: Jan Vcelak <jvcelak at redhat.com>
Date:   Tue Sep 14 16:45:49 2010 +0200

    fixes USB access error message handling
    
    Uses standard logging mechanism instead of printing to stderr.
    
    Upstream Ticket: #44
    Resolves: #628356

 libusb1-error-access-log-message.patch |   34 ++++++++++++++++++++++++++++++++
 libusb1.spec                           |    9 +++++++-
 2 files changed, 42 insertions(+), 1 deletions(-)
---
diff --git a/libusb1-error-access-log-message.patch b/libusb1-error-access-log-message.patch
new file mode 100644
index 0000000..0a265d8
--- /dev/null
+++ b/libusb1-error-access-log-message.patch
@@ -0,0 +1,34 @@
+From 22d61cd0891d8304dfc1a70579cf154fd8e6644a Mon Sep 17 00:00:00 2001
+From b33c3cb9651459de1f3d549677cbac67a017a295 Mon Sep 17 00:00:00 2001
+From: Daniel Drake <dan at reactivated.net>
+Date: Tue, 22 Jun 2010 18:20:23 -0500
+Subject: [PATCH] Linux: fix log message that was being unconditionally sent to stderr (#44)
+
+This message was put in place to aid libusb-compat-0.1 users, who
+may run into the change that libusb-0.1 allowed you to usb_open() a
+device that you don't have write access to, but libusb-1.0 does not.
+
+As explained on the ticket this change is dangerous so it should go through
+the usual logging mechanism. I also added a similar regular log message
+to libusb-compat-0.1.
+
+Resolves: #628356
+
+diff -uNPrp libusb-1.0.8/libusb/os/linux_usbfs.c libusb-1.0.8.new/libusb/os/linux_usbfs.c
+--- libusb-1.0.8/libusb/os/linux_usbfs.c	2010-04-22 23:14:46.000000000 +0200
++++ libusb-1.0.8.new/libusb/os/linux_usbfs.c	2010-09-14 16:22:31.314772148 +0200
+@@ -1055,10 +1055,10 @@ static int op_open(struct libusb_device_
+ 	hpriv->fd = open(filename, O_RDWR);
+ 	if (hpriv->fd < 0) {
+ 		if (errno == EACCES) {
+-			fprintf(stderr, "libusb couldn't open USB device %s: "
+-				"Permission denied.\n"
+-				"libusb requires write access to USB device nodes.\n",
+-				filename);
++			usbi_err(HANDLE_CTX(handle), "libusb couldn't open USB device %s: "
++				"Permission denied.", filename);
++			usbi_err(HANDLE_CTX(handle),
++				"libusb requires write access to USB device nodes.");
+ 			return LIBUSB_ERROR_ACCESS;
+ 		} else if (errno == ENOENT) {
+ 			return LIBUSB_ERROR_NO_DEVICE;
diff --git a/libusb1.spec b/libusb1.spec
index ee565f0..db8959b 100644
--- a/libusb1.spec
+++ b/libusb1.spec
@@ -1,7 +1,7 @@
 Summary: A library which allows userspace access to USB devices
 Name: libusb1
 Version: 1.0.8
-Release: 1%{?dist}
+Release: 2%{?dist}
 Source0: http://downloads.sourceforge.net/libusb/libusb-%{version}.tar.bz2
 License: LGPLv2+
 Group: System Environment/Libraries
@@ -10,6 +10,8 @@ URL: http://libusb.wiki.sourceforge.net/Libusb1.0
 ExcludeArch: s390 s390x
 BuildRequires: doxygen
 
+Patch0: libusb1-error-access-log-message.patch
+
 %description
 This package provides a way for applications to access USB devices. Note that
 this library is not compatible with the original libusb-0.1 series.
@@ -45,6 +47,7 @@ This package contains static libraries to develop applications that use libusb1.
 
 %prep
 %setup -q -n libusb-%{version}
+%patch0 -p1 -b error-access-log-message
 
 %build
 %configure
@@ -85,6 +88,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/*.a
 
 %changelog
+* Tue Sep 14 2010 Jan Vcelak <jvcelak at redhat.com> 1.0.8-2
+- USB access error messages are now handled by standard logging mechanism
+  instead of printing to stderr (#628356)
+
 * Mon May 17 2010 Jindrich Novy <jnovy at redhat.com> 1.0.8-1
 - update to 1.0.8 (#592901)
 


More information about the scm-commits mailing list