transmission which could be tricked into rounding up to the nearest page size, leaking up to a page of kernel memory. [13:11] In IPv6 and NetATM, stop SIOCSIFADDR, SIOCSIFBRDADDR, SIOCSIFDSTADDR and SIOCSIFNETMASK at the socket layer rather than pass them on to the link layer without validation or credential checks. [SA-13:12] Prevent cross-mount hardlinks between different nullfs mounts of the same underlying filesystem. [SA-13:13] Security: CVE-2013-5666 Security: FreeBSD-SA-13:11.sendfile Security: CVE-2013-5691 Security: FreeBSD-SA-13:12.ifioctl Security: CVE-2013-5710 Security: FreeBSD-SA-13:13.nullfs Approved by: so
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			686 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			686 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
Index: sys/kern/uipc_syscalls.c
 | 
						|
===================================================================
 | 
						|
--- sys/kern/uipc_syscalls.c	(revision 255414)
 | 
						|
+++ sys/kern/uipc_syscalls.c	(working copy)
 | 
						|
@@ -2126,11 +2126,10 @@
 | 
						|
 			 * or the passed in nbytes.
 | 
						|
 			 */
 | 
						|
 			pgoff = (vm_offset_t)(off & PAGE_MASK);
 | 
						|
-			if (uap->nbytes)
 | 
						|
-				rem = (uap->nbytes - fsbytes - loopbytes);
 | 
						|
-			else
 | 
						|
-				rem = va.va_size -
 | 
						|
-				    uap->offset - fsbytes - loopbytes;
 | 
						|
+			rem = va.va_size - uap->offset;
 | 
						|
+			if (uap->nbytes != 0)
 | 
						|
+				rem = omin(rem, uap->nbytes);
 | 
						|
+			rem -= fsbytes + loopbytes;
 | 
						|
 			xfsize = omin(PAGE_SIZE - pgoff, rem);
 | 
						|
 			xfsize = omin(space - loopbytes, xfsize);
 | 
						|
 			if (xfsize <= 0) {
 |