diff options
Diffstat (limited to 'abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch')
-rw-r--r-- | abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch b/abs/core-testing/squashfs-tools/mksquashfs-fix-race.patch new file mode 100644 index 0000000..e483c93 --- /dev/null +++ b/abs/core-testing/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); + |