fixes USB access error message handling

Uses standard logging mechanism instead of printing to stderr.

Upstream Ticket: #44
Resolves: #628356
This commit is contained in:
Jan Vcelak 2010-09-14 16:45:49 +02:00
parent 00a29d36ba
commit b958d51841
2 changed files with 42 additions and 1 deletions

View File

@ -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@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;

View File

@ -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@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@redhat.com> 1.0.8-1
- update to 1.0.8 (#592901)