aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-07-08 16:38:10 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-07-16 16:52:32 +0000
commit715e1c7f3c820bd67f2a572daf85bd988fcbd70c (patch)
treefb967fb1df9aacc9039cc3d5de07eeae8e9009d2 /include
parent2f2a4d5283954aa679875cfebdcddea74cd37ea5 (diff)
downloadglibc-azanella/mseal.zip
glibc-azanella/mseal.tar.gz
glibc-azanella/mseal.tar.bz2
elf: Add support for GNU_PROPERTY_NO_MEMORY_SEALazanella/mseal
The GNU_PROPERTY_NO_MEMORY_SEAL is a GNU property per module instructing the glibc not to seal the object PT_LOAD. It can be used for any reason the modules require to seal not to be enabled (i.e., on Firefox hack to bypass the dynamic loader and enable DT_RELR on older glibc [1]). In this case, it is up to the module to apply memory sealing itself. The sealing is applied by default, and it is always enforced with glibc.rtld.seal=2. Checked on aarch64-linux-gnu, x86_64-linux-gnu, and powerpc64le-linux-gnu. [1] https://glandium.org/blog/?p=4297
Diffstat (limited to 'include')
-rw-r--r--include/link.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/link.h b/include/link.h
index fd8e7f2..176f4ab 100644
--- a/include/link.h
+++ b/include/link.h
@@ -214,6 +214,7 @@ struct link_map
lt_library map. */
enum /* Memory sealing status. */
{
+ lt_seal_undefined = 0, /* No set. */
lt_seal_dont, /* Do not seal the object. */
lt_seal_toseal, /* The library is marked to be sealed. */
lt_seal_sealed /* The library is sealed. */