From fad23922d8d5199ee06cfd95ff0de30e92d07c1b Mon Sep 17 00:00:00 2001 From: Andrew Vagin Date: Mon, 8 Aug 2016 20:39:00 +0300 Subject: [PATCH] zdtm: check permissions for map_files Cc: Stanislav Kinsburskiy Test-for: b67d37d96fa0 ("proc_parse: fix vma file open mode recognition") Signed-off-by: Andrew Vagin Signed-off-by: Pavel Emelyanov --- test/zdtm.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/zdtm.py b/test/zdtm.py index 569243a13..46a5e7b95 100755 --- a/test/zdtm.py +++ b/test/zdtm.py @@ -898,13 +898,21 @@ def get_visible_state(test): last = 0 for mp in open("/proc/%s/root/proc/%s/maps" % (test.getpid(), pid)): m = map(lambda x: int('0x' + x, 0), mp.split()[0].split('-')) + m.append(mp.split()[1]) + + f = "/proc/%s/root/proc/%s/map_files/%s" % (test.getpid(), pid, mp.split()[0]) + if os.access(f, os.F_OK): + st = os.lstat(f) + m.append(oct(st.st_mode)) + if cmaps[last][1] == m[0] and cmaps[last][2] == m[2]: cmaps[last][1] = m[1] else: cmaps.append(m) last += 1 - maps[pid] = set(map(lambda x: '%x-%x %s' % (x[0], x[1], x[2]), cmaps)) + + maps[pid] = set(map(lambda x: '%x-%x %s' % (x[0], x[1], x[2:]), cmaps)) cmounts = [] try: