Skip to content

Commit eca5444

Browse files
authored
Fixed memory leak in dfuProbeDevices (#17)
Fix #16
1 parent d9cafdf commit eca5444

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

main.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,22 @@ void libusbClose() {
4141
//ctx = NULL;
4242
}
4343

44+
void freeDfuIf(struct dfu_if *pdfu) {
45+
libusb_unref_device(pdfu->dev);
46+
free(pdfu->alt_name);
47+
free(pdfu->serial_name);
48+
free(pdfu);
49+
}
50+
51+
void clearDfuRoot() {
52+
while (dfu_root) {
53+
struct dfu_if *pdfu = dfu_root;
54+
dfu_root = dfu_root->next;
55+
freeDfuIf(pdfu);
56+
}
57+
}
58+
4459
void dfuProbeDevices() {
45-
dfu_root = NULL;
60+
clearDfuRoot();
4661
probe_devices(ctx);
4762
}

0 commit comments

Comments
 (0)