132 lines
4.9 KiB
Text
132 lines
4.9 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA512
|
|
|
|
=============================================================================
|
|
FreeBSD-EN-15:19.kqueue Errata Notice
|
|
The FreeBSD Project
|
|
|
|
Topic: kqueue write events for files greater 2GB would never fire
|
|
|
|
Category: core
|
|
Module: kern
|
|
Announced: 2015-11-04
|
|
Credits: Steven Hartland
|
|
Affects: All supported versions of FreeBSD.
|
|
Corrected: 2015-09-24 08:42:08 UTC (stable/10, 10.2-STABLE)
|
|
2015-11-04 11:27:13 UTC (releng/10.2, 10.2-RELEASE-p7)
|
|
2015-11-04 11:27:21 UTC (releng/10.1, 10.1-RELEASE-p24)
|
|
2015-09-24 09:35:35 UTC (stable/9, 9.3-STABLE)
|
|
2015-11-04 11:27:30 UTC (releng/9.3, 9.3-RELEASE-p30)
|
|
|
|
For general information regarding FreeBSD Errata Notices and Security
|
|
Advisories, including descriptions of the fields above, security branches,
|
|
and the following sections, please visit
|
|
<URL:https://security.freebsd.org/>.
|
|
|
|
I. Background
|
|
|
|
The kqueue(2) system call provides a generic method of notifying the user
|
|
when an event happens or a condition holds, based on the results of small
|
|
pieces of kernel code termed filters.
|
|
|
|
II. Problem Description
|
|
|
|
Due to int usage for file offsets in the VOP_WRITE_(PRE|POST) macros,
|
|
kqueue(2) write events for files greater 2GB were never fired.
|
|
|
|
III. Impact
|
|
|
|
Any kqueue(2) consumer monitoring for file changes will fail to receive an
|
|
event if the monitored file is greater than 2GB.
|
|
|
|
This causes commands such as 'tail -f' to never see updates.
|
|
|
|
IV. Workaround
|
|
|
|
For the specific case of tail(1), using '-F' instead of '-f' avoids the
|
|
issue, however other consumers of kqueue(2) events to monitor files do not
|
|
have a workaround.
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your system to a supported FreeBSD stable or release / security
|
|
branch (releng) dated after the correction date, and reboot the system.
|
|
|
|
2) To update your present system via a binary patch:
|
|
|
|
Systems running a RELEASE version of FreeBSD on the i386 or amd64
|
|
platforms can be updated via the freebsd-update(8) utility:
|
|
|
|
# freebsd-update fetch
|
|
# freebsd-update install
|
|
|
|
And reboot the system.
|
|
|
|
3) To update your present system via a source code patch:
|
|
|
|
The following patches have been verified to apply to the applicable
|
|
FreeBSD release branches.
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
# fetch https://security.FreeBSD.org/patches/EN-15:19/kqueue.patch
|
|
# fetch https://security.FreeBSD.org/patches/EN-15:19/kqueue.patch.asc
|
|
# gpg --verify kqueue.patch.asc
|
|
|
|
b) Apply the patch. Execute the following commands as root:
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
|
|
c) Recompile your kernel as described in
|
|
<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
|
|
system.
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the correction revision numbers for each
|
|
affected branch.
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/9/ r288168
|
|
releng/9.3/ r290363
|
|
stable/10/ r288167
|
|
releng/10.1/ r290362
|
|
releng/10.2/ r290361
|
|
- -------------------------------------------------------------------------
|
|
|
|
To see which files were modified by a particular revision, run the
|
|
following command, replacing NNNNNN with the revision number, on a
|
|
machine with Subversion installed:
|
|
|
|
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
|
|
|
|
Or visit the following URL, replacing NNNNNN with the revision number:
|
|
|
|
<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
|
|
|
|
VII. References
|
|
|
|
The latest revision of this Errata Notice is available at
|
|
https://security.FreeBSD.org/advisories/FreeBSD-EN-15:19.kqueue.asc
|
|
|
|
-----BEGIN PGP SIGNATURE-----
|
|
|
|
iQIcBAEBCgAGBQJWO0CQAAoJEO1n7NZdz2rncxwQAI23lPRsG84/XneSK4GtnvE7
|
|
Et/mwOmiueKVQuxC4NpIOSDzgdErOWYKy9WWzx8Rqy9AOIK1Bhi37E4weiX0xrGM
|
|
Ib85qH96KapaD91TnEnzw/yBjdIX7MAbLWegVCdF/cWI/zr9vgZVj1G/4z6e572u
|
|
31n1JBxLV1NH6KZ5GZ0gEj7PxYaQaTao1TFU4/qFjJGd3vNzSGPzcWaJfG4kVty0
|
|
2EMa7stz/FyVNP2HUYco1C4VFqELxzvOUAcGWbwS4E6iNa74eU6CoKPcKwK1sr7v
|
|
Kz9wLfvnmd3FBNtJ8aj/mEP7ZfXNsWodiGiqQOoGZFX94sd3ILPluVxyVYlCgz8H
|
|
pWnQ83SIZbecuhheQ+jN8nLbNU0ArCjpio7CnCs/Lr4/yf8lJGRYmGujzqCSbYKh
|
|
X09+i9Tk69L5xnHxvLm52fCe9cZ3kwvqlkBqoTdGO0xiBzA3hBsvUcMLGqL4wGGf
|
|
UeM11Iz5lN+ADeRrsQPiJo5tqUZFoz4Nwa2rZy2dgsxq2lotTat+S9NSRAjD0OAC
|
|
m++knQnljh9G/uxf+aj5XsEFzhmi0W3rh+xT0sUK2vSL+wI88Bpq5SDsNzPfqzUx
|
|
9ixHPZ5huiPwj5j1MvIgPdDsOwaPorAoMklmX4ubW/eTQ1u9RmbbpO875NelOVJb
|
|
8wzl10l1Ex+YkzpATn6p
|
|
=U715
|
|
-----END PGP SIGNATURE-----
|