diff --git a/libraw1394-juju-no-double-free-on-shutdown.patch b/libraw1394-juju-no-double-free-on-shutdown.patch new file mode 100644 index 0000000..4f35ca4 --- /dev/null +++ b/libraw1394-juju-no-double-free-on-shutdown.patch @@ -0,0 +1,36 @@ +diff -Naurp libraw1394-1.3.0/juju/raw1394-iso.c libraw1394-1.3.0.fix/juju/raw1394-iso.c +--- libraw1394-1.3.0/juju/raw1394-iso.c 2007-10-19 16:05:09.000000000 -0400 ++++ libraw1394-1.3.0.fix/juju/raw1394-iso.c 2007-10-19 17:14:40.000000000 -0400 +@@ -394,6 +394,7 @@ iso_init(raw1394handle_t handle, int typ + handle->iso.fd = open(handle->local_filename, O_RDWR); + if (handle->iso.fd < 0) { + free(handle->iso.packets); ++ handle->iso.packets = NULL; + return -1; + } + +@@ -404,6 +405,7 @@ iso_init(raw1394handle_t handle, int typ + handle->iso.fd, &ep) < 0) { + close(handle->iso.fd); + free(handle->iso.packets); ++ handle->iso.packets = NULL; + return -1; + } + +@@ -417,6 +419,8 @@ iso_init(raw1394handle_t handle, int typ + if (retval < 0) { + close(handle->iso.fd); + free(handle->iso.packets); ++ handle->iso.packets = NULL; ++ printf("ioctl call failed, retval = %d\n", retval); + return retval; + } + +@@ -427,6 +431,7 @@ iso_init(raw1394handle_t handle, int typ + if (handle->iso.buffer == MAP_FAILED) { + close(handle->iso.fd); + free(handle->iso.packets); ++ handle->iso.packets = NULL; + return -1; + } +