C++ wrapper: Fix use-after-free issue in List::find_all()
[libftdi] / ftdipp / ftdi.cpp
index e2755d8..95f62a0 100644 (file)
@@ -619,13 +619,10 @@ List::iterator List::erase(iterator beg, iterator end)
     return d->list.erase(beg, end);
 }
 
-List* List::find_all(int vendor, int product)
+List* List::find_all(Context &context, int vendor, int product)
 {
     struct ftdi_device_list* dlist = 0;
-    struct ftdi_context ftdi;
-    ftdi_init(&ftdi);
-    ftdi_usb_find_all(&ftdi, &dlist, vendor, product);
-    ftdi_deinit(&ftdi);
+    ftdi_usb_find_all(context.context(), &dlist, vendor, product);
     return new List(dlist);
 }