summaryrefslogtreecommitdiffstats
path: root/source/ap/squashfs-tools/0006-uptream-fix-race.patch
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-09-13 21:41:51 +0000
committer Eric Hameleers <alien@slackware.com>2018-09-14 09:00:31 +0200
commit83d09b5d6f08bc5e8012e3cec57ba73eb5786bd5 (patch)
treeeb265c82550edf70c6653b320734657366807105 /source/ap/squashfs-tools/0006-uptream-fix-race.patch
parent4ccd8ebc9a81dc3f38e2a81b044788b9f1e6dd6e (diff)
downloadcurrent-83d09b5d6f08bc5e8012e3cec57ba73eb5786bd5.tar.gz
current-83d09b5d6f08bc5e8012e3cec57ba73eb5786bd5.tar.xz
Thu Sep 13 21:41:51 UTC 201820180913214151
a/sysvinit-scripts-2.1-noarch-20.txz: Rebuilt. rc.6: it was reported by birdboy that JFS is not properly unmounted unless the order of unmounting local filesystems followed by remounting the root filesystem read-only is inverted. I tried that, and although it did get rid of a "/ filesystem is busy" error during shutdown, the JFS / filesystem was still checked at boot (and found to be clean). I believe that the existing order of unmounting non-root filesystems followed by remounting the root filesystem as read-only is the correct order, and found that putting another sync between these also gets rid of the error on shutdown, so I've done that. When using JFS as the root filesystem there's still another similar error message that's generated earlier in the boot, though. I'm unable to find any way to shut down a JFS root partition in a way that leaves it clean enough that fsck will not check it at boot, but it is always found to be clean so this should only be cosmetic. I recall this behavior of JFS going all the way back to when it was first added to the kernel. If anyone has a better fix, I'll take a look at it, but in my opinion it's not really anything to worry about. ap/ghostscript-9.25-x86_64-1.txz: Upgraded. This release fixes problems with argument handling, some unintended results of the security fixes to the SAFER file access restrictions (specifically accessing ICC profile files), and some additional security issues over the recent 9.24 release. For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16509 (* Security fix *) ap/squashfs-tools-20180612_6e242dc-x86_64-1.txz: Upgraded. Linked against libzstd.so.1. Thanks to alienBOB. ap/sudo-1.8.25p1-x86_64-1.txz: Upgraded. d/binutils-2.31.1-x86_64-4.txz: Rebuilt. Since baldzhang has pointed out a valid use case for windres on Linux, we are restoring the "Windows only" utilities, as none of them are very large and there may be valid uses for the other ones as well. l/freetype-2.9.1-x86_64-2.txz: Rebuilt. Patched to build properly if windres is present on the machine. l/sg3_utils-1.44-x86_64-1.txz: Upgraded. l/zstd-1.3.5-x86_64-1.txz: Added. Thanks to alienBOB. xfce/tumbler-0.2.3-x86_64-1.txz: Upgraded. isolinux/initrd.img: Rebuilt. Use the ter-114v terminus font. It has been reported that the font we were using (ter-v14v) restricts the available console colors from 16 to 8 due to needing an extra bit for the higher number of available glyphs (though in testing here I couldn't see any difference). The new font covers ISO8859-1, ISO8859-15, and Windows-1252 codepages. I'm still not sure it's the best choice, so additional input is welcomed. Thanks to bormant. usb-and-pxe-installers/usbboot.img: Rebuilt. Use the ter-114v terminus font.
Diffstat (limited to 'source/ap/squashfs-tools/0006-uptream-fix-race.patch')
-rw-r--r--source/ap/squashfs-tools/0006-uptream-fix-race.patch54
1 files changed, 0 insertions, 54 deletions
diff --git a/source/ap/squashfs-tools/0006-uptream-fix-race.patch b/source/ap/squashfs-tools/0006-uptream-fix-race.patch
deleted file mode 100644
index 3cefbe5b7..000000000
--- a/source/ap/squashfs-tools/0006-uptream-fix-race.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit de03266983ceb62e5365aac84fcd3b2fd4d16e6f
-Author: Phillip Lougher <phillip@squashfs.org.uk>
-Date: Thu Sep 18 01:28:11 2014 +0100
-
- mksquashfs: fix rare race in fragment waiting in filesystem finalisation
-
- Fix a rare race condition in fragment waiting when finalising the
- filesystem. This is a race condition that was initially fixed in 2009,
- but inadvertantly re-introduced in the latest release when the code
- was rewritten.
-
- Background:
-
- When finalising the filesystem, the main control thread needs to ensure
- all the in-flight fragments have been queued to the writer thread before
- asking the writer thread to finish, and then writing the metadata.
-
- It does this by waiting on the fragments_outstanding counter. Once this
- counter reaches 0, it synchronises with the writer thread, waiting until
- the writer thread reports no outstanding data to be written.
-
- However, the main thread can race with the fragment deflator thread(s)
- because the fragment deflator thread(s) decrement the fragments_outstanding
- counter and release the mutex before queueing the compressed fragment
- to the writer thread, i.e. the offending code is:
-
- fragments_outstanding --;
- pthread_mutex_unlock(&fragment_mutex);
- queue_put(to_writer, write_buffer);
-
- In extremely rare circumstances, the main thread may see the
- fragments_outstanding counter is zero before the fragment
- deflator sends the fragment buffer to the writer thread, and synchronise
- with the writer thread, and finalise before the fragment has been written.
-
- The fix is to ensure the fragment is queued to the writer thread
- before releasing the mutex.
-
- Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
-
-diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
-index 87b7d86..f1fcff1 100644
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -2445,8 +2445,8 @@ void *frag_deflator(void *arg)
- 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);