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-----
 |