diff --git a/src/fw-iso.c b/src/fw-iso.c index 1829fd0..5193b9a 100644 --- a/src/fw-iso.c +++ b/src/fw-iso.c @@ -602,6 +602,9 @@ void fw_iso_stop(fw_handle_t handle) void fw_iso_shutdown(fw_handle_t handle) { + if (handle->iso.packets == NULL) + return; + munmap(handle->iso.buffer, handle->iso.buf_packets * handle->iso.max_packet_size); if (handle->iso.state != ISO_STOPPED) diff --git a/src/fw.c b/src/fw.c index f92c1b6..6c851e0 100644 --- a/src/fw.c +++ b/src/fw.c @@ -502,9 +502,8 @@ void fw_destroy_handle(fw_handle_t handle) close(handle->devices[i].fd); } - + fw_iso_shutdown(handle); close(handle->epoll_fd); - free(handle); return;