diff options
Diffstat (limited to 'sysdeps/x86/dl-cet.c')
-rw-r--r-- | sysdeps/x86/dl-cet.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sysdeps/x86/dl-cet.c b/sysdeps/x86/dl-cet.c index b4910f7..ed7fd6d 100644 --- a/sysdeps/x86/dl-cet.c +++ b/sysdeps/x86/dl-cet.c @@ -76,10 +76,12 @@ dl_cet_check (struct link_map *m, const char *program) */ enable_ibt &= (HAS_CPU_FEATURE (IBT) && (enable_ibt_type == cet_always_on - || (m->l_cet & lc_ibt) != 0)); + || (m->l_x86_feature_1_and + & GNU_PROPERTY_X86_FEATURE_1_IBT) != 0)); enable_shstk &= (HAS_CPU_FEATURE (SHSTK) && (enable_shstk_type == cet_always_on - || (m->l_cet & lc_shstk) != 0)); + || (m->l_x86_feature_1_and + & GNU_PROPERTY_X86_FEATURE_1_SHSTK) != 0)); } /* ld.so is CET-enabled by kernel. But shared objects may not @@ -111,7 +113,8 @@ dl_cet_check (struct link_map *m, const char *program) /* IBT is enabled only if it is enabled in executable as well as all shared objects. */ enable_ibt &= (enable_ibt_type == cet_always_on - || (l->l_cet & lc_ibt) != 0); + || (l->l_x86_feature_1_and + & GNU_PROPERTY_X86_FEATURE_1_IBT) != 0); if (!found_ibt_legacy && enable_ibt != ibt_enabled) { found_ibt_legacy = true; @@ -121,7 +124,8 @@ dl_cet_check (struct link_map *m, const char *program) /* SHSTK is enabled only if it is enabled in executable as well as all shared objects. */ enable_shstk &= (enable_shstk_type == cet_always_on - || (l->l_cet & lc_shstk) != 0); + || (l->l_x86_feature_1_and + & GNU_PROPERTY_X86_FEATURE_1_SHSTK) != 0); if (enable_shstk != shstk_enabled) { found_shstk_legacy = true; |