From: Rolf Fiedler Date: Fri, 25 Aug 2017 09:33:35 +0000 (+0200) Subject: Fix small memleak when ftdi_init() fails X-Git-Tag: v1.5rc1~42 X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=commitdiff_plain;h=3b3a9614147038b37b69f5c2878841bad1db8af1 Fix small memleak when ftdi_init() fails If libusb open fails (e.g. permission problem), then ftdi_init() leaks the memory for the eeprom data. --- diff --git a/src/ftdi.c b/src/ftdi.c index 175befc..b336c80 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -87,7 +87,7 @@ static void ftdi_usb_close_internal (struct ftdi_context *ftdi) */ int ftdi_init(struct ftdi_context *ftdi) { - struct ftdi_eeprom* eeprom = (struct ftdi_eeprom *)malloc(sizeof(struct ftdi_eeprom)); + struct ftdi_eeprom* eeprom; ftdi->usb_ctx = NULL; ftdi->usb_dev = NULL; ftdi->usb_read_timeout = 5000; @@ -111,6 +111,7 @@ int ftdi_init(struct ftdi_context *ftdi) ftdi_set_interface(ftdi, INTERFACE_ANY); ftdi->bitbang_mode = 1; /* when bitbang is enabled this holds the number of the mode */ + eeprom = (struct ftdi_eeprom *)malloc(sizeof(struct ftdi_eeprom)); if (eeprom == 0) ftdi_error_return(-2, "Can't malloc struct ftdi_eeprom"); memset(eeprom, 0, sizeof(struct ftdi_eeprom));