svn commit: r336871 - head/sys/compat/freebsd32

Alan Somers asomers at FreeBSD.org
Sun Jul 29 18:22:27 UTC 2018


Author: asomers
Date: Sun Jul 29 18:22:26 2018
New Revision: 336871
URL: https://svnweb.freebsd.org/changeset/base/336871

Log:
  getrusage(2): fix return value under 32-bit emulation
  
  According to the man page, getrusage(2) should return EFAULT if the rusage
  argument lies outside of the process's address space. But due to an
  oversight in r100384, that's never been the case during 32-bit emulation.
  Fix it.
  
  PR:		230153
  Reported by:	tests(7)
  Reviewed by:	cem
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D16500

Modified:
  head/sys/compat/freebsd32/freebsd32_misc.c

Modified: head/sys/compat/freebsd32/freebsd32_misc.c
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_misc.c	Sun Jul 29 17:27:10 2018	(r336870)
+++ head/sys/compat/freebsd32/freebsd32_misc.c	Sun Jul 29 18:22:26 2018	(r336871)
@@ -883,12 +883,9 @@ freebsd32_getrusage(struct thread *td, struct freebsd3
 	int error;
 
 	error = kern_getrusage(td, uap->who, &s);
-	if (error)
-		return (error);
-	if (uap->rusage != NULL) {
-		freebsd32_rusage_out(&s, &s32);
+	freebsd32_rusage_out(&s, &s32);
+	if (error == 0)
 		error = copyout(&s32, uap->rusage, sizeof(s32));
-	}
 	return (error);
 }
 


More information about the svn-src-all mailing list