Date: Tue, 5 Jan 2021 16:04:11 +0000 From: Jessica Clarke <jrtc27@freebsd.org> To: Ed Maste <emaste@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: 613a08cfa2e0 - main - rtld: map without PROT_EXEC for relocation Message-ID: <BA8AAC74-F91D-4128-8AF9-7BEE9D59BD1D@freebsd.org> In-Reply-To: <202101051557.105FvmZf064874@gitrepo.freebsd.org> References: <202101051557.105FvmZf064874@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5 Jan 2021, at 15:57, Ed Maste <emaste@FreeBSD.org> wrote: > diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c > index 27262ab9dbc5..7b8bfba84d7d 100644 > --- a/libexec/rtld-elf/rtld.c > +++ b/libexec/rtld-elf/rtld.c > @@ -2982,7 +2982,8 @@ reloc_textrel_prot(Obj_Entry *obj, bool before) > base = obj->relocbase + trunc_page(ph->p_vaddr); > sz = round_page(ph->p_vaddr + ph->p_filesz) - > trunc_page(ph->p_vaddr); > - prot = convert_prot(ph->p_flags) | (before ? PROT_WRITE : 0); > + prot = before ? (PROT_READ | PROT_WRITE) : > + convert_prot(ph->p_flags); > if (mprotect(base, sz, prot) == -1) { > _rtld_error("%s: Cannot write-%sable text segment: %s", > obj->path, before ? "en" : "dis", This error message could perhaps be improved now that both W and X are varying? As it stands it reads like the code used to function. Jess
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BA8AAC74-F91D-4128-8AF9-7BEE9D59BD1D>