Looks like DF_BIND_NOW has the same function as DT_BIND_NOW. --- Namcap/rules/elffiles.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Namcap/rules/elffiles.py b/Namcap/rules/elffiles.py index d707a58..b2ce6ec 100644 --- a/Namcap/rules/elffiles.py +++ b/Namcap/rules/elffiles.py @@ -140,11 +140,16 @@ class ELFGnuRelroRule(TarballRule): description = "Check for FULL RELRO in ELF files." def has_bind_now(self, elffile): + DF_BIND_NOW = 8 + for section in elffile.iter_sections(): if not isinstance(section, DynamicSection): continue - if any(tag.entry.d_tag == 'DT_BIND_NOW' for tag in section.iter_tags()): - return True + for tag in section.iter_tags(): + if tag.entry.d_tag == 'DT_BIND_NOW': + return True + if tag.entry.d_tag == 'DT_FLAGS' and tag.entry.d_val & DF_BIND_NOW: + return True return False def analyze(self, pkginfo, tar): -- 2.19.0