summaryrefslogtreecommitdiffstats
path: root/abs/core/squashfs-tools/mksquashfs-fix-race.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/squashfs-tools/mksquashfs-fix-race.patch')
-rw-r--r--abs/core/squashfs-tools/mksquashfs-fix-race.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/abs/core/squashfs-tools/mksquashfs-fix-race.patch b/abs/core/squashfs-tools/mksquashfs-fix-race.patch
new file mode 100644
index 0000000..e483c93
--- /dev/null
+++ b/abs/core/squashfs-tools/mksquashfs-fix-race.patch
@@ -0,0 +1,23 @@
+--- squashfs-tools/mksquashfs.c 2009-04-05 18:22:48.000000000 -0300
++++ squashfs-tools/mksquashfs.c 2010-02-10 17:04:29.303757175 -0300
+@@ -1733,9 +1733,7 @@
+ entry->buffer->block = bytes;
+ bytes += compressed_size;
+ fragments_outstanding --;
+- pthread_mutex_unlock(&fragment_mutex);
+ queue_put(to_writer, entry->buffer);
+- pthread_mutex_lock(&fragment_mutex);
+ TRACE("fragment_locked writing fragment %d, compressed size %d"
+ "\n", entry->fragment, compressed_size);
+ free(entry);
+@@ -2426,8 +2424,8 @@
+ write_buffer->block = bytes;
+ bytes += compressed_size;
+ fragments_outstanding --;
+- pthread_mutex_unlock(&fragment_mutex);
+ queue_put(to_writer, write_buffer);
++ pthread_mutex_unlock(&fragment_mutex);
+ TRACE("Writing fragment %lld, uncompressed size %d, "
+ "compressed size %d\n", file_buffer->block,
+ file_buffer->size, compressed_size);
+