forked from pool/rpmlint
Accepting request 500457 from home:StefanBruens:branches:devel:openSUSE:Factory:rpmlint_3
chroot/chdir test was specific to ix86/x86_64, add proper implementation for all ARM, relax check on PPC OBS-URL: https://build.opensuse.org/request/show/500457 OBS-URL: https://build.opensuse.org/package/show/devel:openSUSE:Factory:rpmlint/rpmlint?expand=0&rev=460
This commit is contained in:
parent
debe85b1cc
commit
ce4f4138f7
38
BinariesCheck_fix_chroot_check_on_non_x86.patch
Normal file
38
BinariesCheck_fix_chroot_check_on_non_x86.patch
Normal file
@ -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 <chdir@plt>
|
||||
- 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 <chroot@plt>
|
||||
+ BinaryInfo.objdump_call_regex = re.compile(b'\sbl\s+(.*)')
|
||||
+ else: # x86_64, ix86
|
||||
+ # 401eb8: e8 c3 f0 ff ff callq 400f80 <chdir@plt>
|
||||
+ 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)
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user