Fix all leak in the examples shown with no device connected
[libftdi] / examples / bitbang.c
index 2326605..f4168ac 100644 (file)
@@ -1,6 +1,7 @@
 /* This program is distributed under the GPL, version 2 */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 #ifdef __WIN32__
 #define sleep(x) Sleep(x)
@@ -11,7 +12,8 @@ int main(int argc, char **argv)
 {
     struct ftdi_context ftdic;
     int f,i;
-    char buf[1];
+    unsigned char buf[1];
+    int retval = 0;
 
     if (ftdi_init(&ftdic) < 0)
     {
@@ -24,13 +26,14 @@ int main(int argc, char **argv)
     if (f < 0 && f != -5)
     {
         fprintf(stderr, "unable to open ftdi device: %d (%s)\n", f, ftdi_get_error_string(&ftdic));
-        exit(-1);
+        retval = 1;
+        goto done;
     }
 
     printf("ftdi open succeeded: %d\n",f);
 
     printf("enabling bitbang mode\n");
-    ftdi_enable_bitbang(&ftdic, 0xFF);
+    ftdi_set_bitmode(&ftdic, 0xFF, BITMODE_BITBANG);
 
     sleep(3);
 
@@ -77,5 +80,8 @@ int main(int argc, char **argv)
     ftdi_disable_bitbang(&ftdic);
 
     ftdi_usb_close(&ftdic);
+done:
     ftdi_deinit(&ftdic);
+
+    return retval;
 }