git: 81c857dd7e6a - main - gcore: Don't hardcode VM write permissions.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Mon, 06 Jun 2022 23:50:45 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=81c857dd7e6a83924a8e45684fb94024fc3c929b

commit 81c857dd7e6a83924a8e45684fb94024fc3c929b
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-06-06 23:43:02 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-06-06 23:43:02 +0000

    gcore: Don't hardcode VM write permissions.
    
    This ensures read-only PT_LOAD segments are not marked as writable in
    the phdr flags.
    
    Reviewed by:    markj
    Sponsored by:   DARPA
    Differential Revision:  https://reviews.freebsd.org/D35398
---
 usr.bin/gcore/elfcore.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/usr.bin/gcore/elfcore.c b/usr.bin/gcore/elfcore.c
index b0022d014e00..e5d7afd3f440 100644
--- a/usr.bin/gcore/elfcore.c
+++ b/usr.bin/gcore/elfcore.c
@@ -624,7 +624,9 @@ readmap(pid_t pid)
 			errx(1, "out of memory");
 		ent->start = (vm_offset_t)kve->kve_start;
 		ent->end = (vm_offset_t)kve->kve_end;
-		ent->protection = VM_PROT_READ | VM_PROT_WRITE;
+		ent->protection = VM_PROT_READ;
+		if ((kve->kve_protection & KVME_PROT_WRITE) != 0)
+			ent->protection |= VM_PROT_WRITE;
 		if ((kve->kve_protection & KVME_PROT_EXEC) != 0)
 			ent->protection |= VM_PROT_EXECUTE;