svn commit: r367182 - head/sys/compat/linux

Conrad Meyer cem at FreeBSD.org
Fri Oct 30 19:03:00 UTC 2020


Author: cem
Date: Fri Oct 30 19:02:59 2020
New Revision: 367182
URL: https://svnweb.freebsd.org/changeset/base/367182

Log:
  linux(4): Quiesce warning about madvise(..., -1)
  
  This API misuse is intended to produce an error value to detect certain
  bogus stub implementations of MADV_WIPEONFORK.  We don't need to log a
  warning about it.
  
  Example:
  https://boringssl.googlesource.com/boringssl/+/ad5582985cc6b89d0e7caf0d9cc7e301de61cf66%5E%21/
  
  Reviewed by:	emaste, trasz
  Differential Revision:	https://reviews.freebsd.org/D27017

Modified:
  head/sys/compat/linux/linux_mmap.c

Modified: head/sys/compat/linux/linux_mmap.c
==============================================================================
--- head/sys/compat/linux/linux_mmap.c	Fri Oct 30 19:00:42 2020	(r367181)
+++ head/sys/compat/linux/linux_mmap.c	Fri Oct 30 19:02:59 2020	(r367182)
@@ -394,6 +394,16 @@ linux_madvise_common(struct thread *td, uintptr_t addr
 	case LINUX_MADV_SOFT_OFFLINE:
 		linux_msg(curthread, "unsupported madvise MADV_SOFT_OFFLINE");
 		return (EINVAL);
+	case -1:
+		/*
+		 * -1 is sometimes used as a dummy value to detect simplistic
+		 * madvise(2) stub implementations.  This safeguard is used by
+		 * BoringSSL, for example, before assuming MADV_WIPEONFORK is
+		 * safe to use.  Don't produce an "unsupported" error message
+		 * for this special dummy value, which is unlikely to be used
+		 * by any new advisory behavior feature.
+		 */
+		return (EINVAL);
 	default:
 		linux_msg(curthread, "unsupported madvise behav %d", behav);
 		return (EINVAL);


More information about the svn-src-all mailing list