svn commit: r368260 - in head: libexec/rtld-elf sys/sys
Konstantin Belousov
kib at FreeBSD.org
Tue Dec 1 22:28:02 UTC 2020
Author: kib
Date: Tue Dec 1 22:28:01 2020
New Revision: 368260
URL: https://svnweb.freebsd.org/changeset/base/368260
Log:
rtld: bump r_debug.r_version to 1 from current 0.
Add r_ldbase.
Requested and reviewed by: emaste
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D27429
Modified:
head/libexec/rtld-elf/rtld.c
head/sys/sys/link_elf.h
Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c Tue Dec 1 20:27:06 2020 (r368259)
+++ head/libexec/rtld-elf/rtld.c Tue Dec 1 22:28:01 2020 (r368260)
@@ -2272,8 +2272,10 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo **aux_info)
parse_rtld_phdr(&obj_rtld);
obj_enforce_relro(&obj_rtld);
+ r_debug.r_version = R_DEBUG_VERSION;
r_debug.r_brk = r_debug_state;
r_debug.r_state = RT_CONSISTENT;
+ r_debug.r_ldbase = obj_rtld.relocbase;
}
/*
Modified: head/sys/sys/link_elf.h
==============================================================================
--- head/sys/sys/link_elf.h Tue Dec 1 20:27:06 2020 (r368259)
+++ head/sys/sys/link_elf.h Tue Dec 1 22:28:01 2020 (r368260)
@@ -69,7 +69,7 @@ typedef struct link_map {
} Link_map;
struct r_debug {
- int r_version; /* not used */
+ int r_version; /* Currently '1' */
struct link_map *r_map; /* list of loaded images */
void (*r_brk)(struct r_debug *, struct link_map *);
/* pointer to break point */
@@ -78,7 +78,10 @@ struct r_debug {
RT_ADD, /* adding a shared library */
RT_DELETE /* removing a shared library */
} r_state;
+ void *r_ldbase; /* Base address of rtld */
};
+
+#define R_DEBUG_VERSION 1
struct dl_phdr_info
{
More information about the svn-src-all
mailing list