Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jun 2021 08:33:34 GMT
From:      Alex Richardson <arichardson@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: e3be51b2bc7c - main - rtld-elf: Check the return value of obj_enforce_relro()
Message-ID:  <202106220833.15M8XY6f017288@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by arichardson:

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

commit e3be51b2bc7cb41eb9a238cced2ee650d9bb2d41
Author:     Alex Richardson <arichardson@FreeBSD.org>
AuthorDate: 2021-06-22 08:09:44 +0000
Commit:     Alex Richardson <arichardson@FreeBSD.org>
CommitDate: 2021-06-22 08:10:48 +0000

    rtld-elf: Check the return value of obj_enforce_relro()
    
    The mprotect() call was failing on CheriBSD when changing rtld's relro
    page permissions due to missing CHERI capability permissions on the
    mprotect() argument but did not report an error since the return value
    was being ignored. It should never fail on any supported FreeBSD
    architecture, but checking the return value seems like a good
    sanity check to me.
    
    Reviewed By:    kib, imp
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D30820
---
 libexec/rtld-elf/rtld.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 9897248bffbb..f60872f12c52 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -2288,7 +2288,8 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo **aux_info)
     obj_rtld.path = xstrdup(ld_path_rtld);
 
     parse_rtld_phdr(&obj_rtld);
-    obj_enforce_relro(&obj_rtld);
+    if (obj_enforce_relro(&obj_rtld) == -1)
+	rtld_die();
 
     r_debug.r_version = R_DEBUG_VERSION;
     r_debug.r_brk = r_debug_state;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202106220833.15M8XY6f017288>