diff --git a/BinariesCheck_fix_chroot_check_on_non_x86.patch b/BinariesCheck_fix_chroot_check_on_non_x86.patch new file mode 100644 index 0000000..5296282 --- /dev/null +++ b/BinariesCheck_fix_chroot_check_on_non_x86.patch @@ -0,0 +1,38 @@ +diff --git a/usr/share/rpmlint/BinariesCheck.py b/tmp/BinariesCheck.py +index 6e50c03..460c003 100644 +--- a/BinariesCheck.py ++++ b/BinariesCheck.py +@@ -64,8 +64,6 @@ class BinaryInfo: + setuid_call_regex = create_regexp_call(['setresuid', 'seteuid', 'setuid']) + setgroups_call_regex = create_regexp_call(['initgroups', 'setgroups']) + chroot_call_regex = create_regexp_call('chroot') +- # 401eb8: e8 c3 f0 ff ff callq 400f80 +- objdump_call_regex = re.compile(b'callq?\s(.*)') + + forbidden_functions = Config.getOption("WarnOnFunction") + if forbidden_functions: +@@ -109,6 +107,12 @@ class BinaryInfo: + self.mktemp = False + + is_debug = path.endswith('.debug') ++ if pkg.arch in ['armv6hl', 'armv7hl', 'aarch64']: ++ # 10450: ebffffec bl 10408 ++ BinaryInfo.objdump_call_regex = re.compile(b'\sbl\s+(.*)') ++ else: # x86_64, ix86 ++ # 401eb8: e8 c3 f0 ff ff callq 400f80 ++ BinaryInfo.objdump_call_regex = re.compile(b'callq?\s(.*)') + + cmd = ['env', 'LC_ALL=C', 'readelf', '-W', '-S', '-l', '-d', '-s'] + cmd.append(path) +@@ -234,6 +238,11 @@ class BinaryInfo: + # check if chroot is near chdir (since otherwise, chroot is called + # without chdir) + if self.chroot and self.chdir: ++ if pkg.arch in ['ppc', 'ppc64', 'ppc64le']: ++ # On PPC, it is to difficult to find the actual invocations ++ # of chroot/chdir, if both exist assume chroot is fine ++ self.chroot_near_chdir = True ++ pass + p = subprocess.Popen( + ['env', 'LC_ALL=C', 'objdump', '-d', path], + stdout=subprocess.PIPE, bufsize=-1) diff --git a/rpmlint.changes b/rpmlint.changes index 3b68169..db2a538 100644 --- a/rpmlint.changes +++ b/rpmlint.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 1 15:31:53 UTC 2017 - stefan.bruens@rwth-aachen.de + +- Add BinariesCheck_fix_chroot_check_on_non_x86.patch + Check for correct invocation of chroot was only implemented for x86 + ------------------------------------------------------------------- Wed May 31 13:24:22 UTC 2017 - jochen.becker@hrz.tu-darmstadt.de diff --git a/rpmlint.spec b/rpmlint.spec index 016af85..ff03eb0 100644 --- a/rpmlint.spec +++ b/rpmlint.spec @@ -123,6 +123,8 @@ Patch664: issue_68_BinariesCheck_lower_memory-4.patch # Fix a regression introduced by suse-shlib-devel-dependency.diff Patch67: suse-readd_terminator_in_regex.patch Patch68: boo1027577-license_tag.patch +# Fix check for 'missing-call-to-chdir-with-chroot' on ARM, relax check on PPC +Patch69: BinariesCheck_fix_chroot_check_on_non_x86.patch # PATCHLIST END # BuildArch must at the end. is a bug: https://bugzilla.suse.com/show_bug.cgi?id=926766 BuildArch: noarch