X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.c;h=583944ebb51e188992be36f54d34827d24598ce1;hp=950e84e06d997c222e73b193847043bdd2039e8f;hb=6db32169ce93f0ec8e5a9b2c299760509ff1ef44;hpb=898c34ddbfd67272da1d7ff281dc500479e78869 diff --git a/src/ftdi.c b/src/ftdi.c index 950e84e..583944e 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -158,6 +158,7 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devli ftdi_error_return(-2, "usb_find_devices() failed"); curdev = devlist; + *curdev = NULL; for (bus = usb_busses; bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) { if (dev->descriptor.idVendor == vendor @@ -186,13 +187,15 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devli */ void ftdi_list_free(struct ftdi_device_list **devlist) { - struct ftdi_device_list **curdev; - for (; *devlist == NULL; devlist = curdev) { - curdev = &(*devlist)->next; - free(*devlist); + struct ftdi_device_list *curdev, *next; + + for (curdev = *devlist; curdev != NULL;) { + next = curdev->next; + free(curdev); + curdev = next; } - devlist = NULL; + *devlist = NULL; } /**