X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver/blobdiff_plain/25ba7a49098fb2f4c120293d8f7c7404e5d3687b..72ce448bf97cfc46f5153468ef5a7e3327ca3673:/usb-driver.c diff --git a/usb-driver.c b/usb-driver.c index 513fc3e..e620145 100644 --- a/usb-driver.c +++ b/usb-driver.c @@ -245,7 +245,7 @@ int do_wdioctl(int fd, unsigned int request, unsigned char *wdioctl) { switch(request & ~(0xc0000000)) { case VERSION: version = (struct version_struct*)(wdheader->data); - strcpy(version->version, "libusb-driver.so $Revision: 1.68 $"); + strcpy(version->version, "libusb-driver.so version: " USB_DRIVER_VERSION); version->versionul = 802; DPRINTF("VERSION\n"); break; @@ -276,6 +276,9 @@ int do_wdioctl(int fd, unsigned int request, unsigned char *wdioctl) { #else pport = config_get((unsigned long)cr->Card.Item[0].I.IO.dwAddr / 0x10); + if (!pport) + break; + ret = pport->open((unsigned long)cr->Card.Item[0].I.IO.dwAddr / 0x10); ppbase = (unsigned long)cr->Card.Item[0].I.IO.dwAddr; @@ -633,7 +636,10 @@ int do_wdioctl(int fd, unsigned int request, unsigned char *wdioctl) { #ifndef NO_WINDRVR ret = (*ioctl_func) (fd, request, wdioctl); #else - pport->close(cr->hCard); + if (pport) + pport->close(cr->hCard); + + pport = NULL; #endif } break; @@ -887,8 +893,8 @@ int access(const char *pathname, int mode) { if (!func) func = (int (*) (const char*, int)) dlsym(RTLD_NEXT, "access"); - - if (!strcmp(pathname, "/dev/windrvr6")) { + + if (pathname && !strcmp(pathname, "/dev/windrvr6")) { return 0; } else { return (*func)(pathname, mode);