Thread (5 messages) 5 messages, 3 authors, 2026-01-16

Re: Issue in man page PR_SET_MDWE.2const

From: Alejandro Colomar <alx@kernel.org>
Date: 2026-01-16 12:39:11

Hi Catalin,

On Fri, Jan 16, 2026 at 10:11:03AM +0000, Catalin Marinas wrote:
Hi Alejandro,

On Thu, Dec 25, 2025 at 09:54:46PM +0100, Alejandro Colomar wrote:
quoted
On Wed, Dec 24, 2025 at 02:38:23PM +0000, Helge Kreutzmann wrote:
quoted
Without further ado, the following was found:

Issue:     mapping protections → mapping ?

"New memory mapping protections can't be writable and executable.  Non-"
"executable mappings can't become executable."
That text was added in

	commit 457ca4a9ae3eae9835a5c011851c4eb88b49d322
	Author: Florent Revest [off-list ref]
	Date:   Wed Oct 11 13:47:44 2023 +0200

	    prctl.2: Document PR_SET_MDWE and PR_GET_MDWE
	    
	    Memory-Deny-Write-Execute is a W^X process control originally introduced
	    by Joey Gouly.  I'm the author of the PR_MDWE_NO_INHERIT flag.
	    
	    Signed-off-by: Florent Revest [off-list ref]
	    Reviewed-by: Catalin Marinas [off-list ref]
	    Signed-off-by: Alejandro Colomar [off-list ref]

So let's ask the author and reviewer.  The manual page says:

	$ mansect DESCRIPTION man/man2const/PR_SET_MDWE.2const \
	| MANWIDTH=64 man /dev/stdin \
	| cat;
	PR_SET_MDWE(2const)                         PR_SET_MDWE(2const)

	DESCRIPTION
	     Set the calling process’ Memory‐Deny‐Write‐Execute protec‐
	     tion  mask.  Once protection bits are set, they can not be
	     changed.

	     mask must be a bit mask of:

	     PR_MDWE_REFUSE_EXEC_GAIN
		    New memory mapping protections  can’t  be  writable
		    and  executable.  Non‐executable mappings can’t be‐
		    come executable.

	     PR_MDWE_NO_INHERIT  (since Linux 6.6)
		    Do not propagate MDWE protection to child processes
		    on fork(2).   Setting  this  bit  requires  setting
		    PR_MDWE_REFUSE_EXEC_GAIN too.

	Linux man‐pages (unreleased) (date)         PR_SET_MDWE(2const)

Do you agree with the wording fix proposal?
Just to make sure I understand, do you want to change "mapping
protections" to "mapping" in the PR_MDWE_REFUSE_EXEC_GAIN description?
I didn't have an opinion.  Helge proposed this, and I have no idea
whether the proposal is good or not, which is why I forwarded it to you.  :)
Fine by me but I would use "mappings" (plural) instead. It matches the
following sentence.
Yes, plural seems more correct.  Thanks!
I've applied the following patch:

	commit 6352d57d7324d8c6fee2d335f103d8755ea5a620
	Author: Alejandro Colomar [off-list ref]
	Date:   Fri Jan 16 13:37:28 2026 +0100

	    man/man2const/PR_SET_MDWE.2const: wfix
	    
	    Reported-by: Helge Kreutzmann [off-list ref]
	    Suggested-by: Catalin Marinas [off-list ref]
	    Cc: Florent Revest [off-list ref]
	    Signed-off-by: Alejandro Colomar [off-list ref]

	diff --git a/man/man2const/PR_SET_MDWE.2const b/man/man2const/PR_SET_MDWE.2const
	index db75b1873..4749ea5be 100644
	--- a/man/man2const/PR_SET_MDWE.2const
	+++ b/man/man2const/PR_SET_MDWE.2const
	@@ -26,7 +26,7 @@ .SH DESCRIPTION
	 must be a bit mask of:
	 .TP
	 .B PR_MDWE_REFUSE_EXEC_GAIN
	-New memory mapping protections can't be writable and executable.
	+New memory mappings can't be writable and executable.
	 Non-executable mappings can't become executable.
	 .TP
	 .B PR_MDWE_NO_INHERIT " (since Linux 6.6)"


Have a lovely day!
Alex

-- 
<https://www.alejandro-colomar.es>

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help