Hi, here is a small patch fixing a bug in libnetmd.libusb_open() function has to be checked for errors before trying to call libusb_claim_interface(). Else if libusb_open() fails libusb_claim_interface() will be called with a NULL pointer, so it will crash with a segmentation fault.
Maybe we should check the error code to give more detailed information why libusb_open() failed.
This patch is just to prevent any crashes yet. Thomas
>From 1daad5af51e3886a3d4cdfc3ed76ef692a91205a Mon Sep 17 00:00:00 2001 From: Thomas Arp <manner.moe@gmx.de> Date: Fri, 26 Apr 2013 19:55:28 +0200 Subject: [PATCH] Check for error code from libusb_open in netmd_open function --- libnetmd/netmd_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libnetmd/netmd_dev.c b/libnetmd/netmd_dev.c index 263e446..0fac0ce 100644 --- a/libnetmd/netmd_dev.c +++ b/libnetmd/netmd_dev.c @@ -116,8 +116,8 @@ netmd_error netmd_open(netmd_device *dev, netmd_dev_handle **dev_handle) int result; libusb_device_handle *dh = NULL; - libusb_open(dev->usb_dev, &dh); - result = libusb_claim_interface(dh, 0); + if((result = libusb_open(dev->usb_dev, &dh)) == 0) + result = libusb_claim_interface(dh, 0); if (result == 0) { *dev_handle = (netmd_dev_handle*)dh; -- 1.8.0.msysgit.0