From e13685a6e5c92612c6eeeb8a17c052539c0f9da5 Mon Sep 17 00:00:00 2001 From: Andrey Kazmin Date: Mon, 27 Dec 2021 15:50:48 +0300 Subject: [PATCH] linux-user/syscall.c: fix missed flag for shared memory in open_self_maps MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The possible variants for region type in /proc/self/maps are either private "p" or shared "s". In the current implementation, we mark shared regions as "-". It could break memory mapping parsers such as included into ASan/HWASan sanitizers. Fixes: 01ef6b9e4e4e ("linux-user: factor out reading of /proc/self/maps") Signed-off-by: Andrey Kazmin Reviewed-by: Laurent Vivier Acked-by: Alex Bennée Message-Id: <20211227125048.22610-1-a.kazmin@partner.samsung.com> Signed-off-by: Laurent Vivier --- linux-user/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 01cd59cdce5..3160d77154b 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -8045,7 +8045,7 @@ static int open_self_maps(void *cpu_env, int fd) (flags & PAGE_READ) ? 'r' : '-', (flags & PAGE_WRITE_ORG) ? 'w' : '-', (flags & PAGE_EXEC) ? 'x' : '-', - e->is_priv ? 'p' : '-', + e->is_priv ? 'p' : 's', (uint64_t) e->offset, e->dev, e->inode); if (path) { dprintf(fd, "%*s%s\n", 73 - count, "", path); -- 2.39.5