Add ftdi_eeprom_free() to free allocated memory in eeprom
[libftdi] / src / ftdi.c
index 21c1622..7f7e5a0 100644 (file)
@@ -490,7 +490,7 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, libusb_device *dev)
             }
             else
             {
-                ftdi_error_return(-3, "unable to set usb configuration. Make sure ftdi_sio is unloaded!");
+                ftdi_error_return(-3, "unable to set usb configuration. Make sure the default FTDI driver is not in use");
             }
         }
     }
@@ -504,7 +504,7 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, libusb_device *dev)
         }
         else
         {
-            ftdi_error_return(-5, "unable to claim usb device. Make sure ftdi_sio is unloaded!");
+            ftdi_error_return(-5, "unable to claim usb device. Make sure the default FTDI driver is not in use");
         }
     }
 
@@ -2205,6 +2205,27 @@ void ftdi_eeprom_initdefaults(struct ftdi_eeprom *eeprom)
 }
 
 /**
+    Frees allocated memory in eeprom.
+
+    \param eeprom Pointer to ftdi_eeprom
+*/
+void ftdi_eeprom_free(struct ftdi_eeprom *eeprom)
+{
+    if (eeprom->manufacturer != 0) {
+        free(eeprom->manufacturer);
+        eeprom->manufacturer = 0;
+    }
+    if (eeprom->product != 0) {
+        free(eeprom->product);
+        eeprom->product = 0;
+    }
+    if (eeprom->serial != 0) {
+        free(eeprom->serial);
+        eeprom->serial = 0;
+    }
+}
+
+/**
     Build binary output from ftdi_eeprom structure.
     Output is suitable for ftdi_write_eeprom().