From: "Alex Bennée" <alex.bennee@linaro.org>
To: Laurent Vivier <laurent@vivier.eu>
Cc: Nicolas Surbayrole <nsurbayrole@quarkslab.com>, qemu-devel@nongnu.org
Subject: Re: [PATCH v2] linux-user: Fix executable page of /proc/self/maps
Date: Tue, 09 Mar 2021 17:58:53 +0000 [thread overview]
Message-ID: <87im608atq.fsf@linaro.org> (raw)
In-Reply-To: <c74adef9-fb5f-06ee-9dfc-083576a5a607@vivier.eu>
Laurent Vivier <laurent@vivier.eu> writes:
> Le 08/03/2021 à 10:19, Nicolas Surbayrole a écrit :
>> The guest binary and libraries are not always map with the
>> executable bit in the host process. The guest may read a
>> /proc/self/maps with no executable address range. The
>> perm fields should be based on the guest permission inside
>> Qemu.
>>
>> Signed-off-by: Nicolas Surbayrole <nsurbayrole@quarkslab.com>
>> ---
>> linux-user/syscall.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
>> index 389ec09764..0bbb2ff9c7 100644
>> --- a/linux-user/syscall.c
>> +++ b/linux-user/syscall.c
>> @@ -7888,9 +7888,9 @@ static int open_self_maps(void *cpu_env, int fd)
>> count = dprintf(fd, TARGET_ABI_FMT_ptr "-" TARGET_ABI_FMT_ptr
>> " %c%c%c%c %08" PRIx64 " %s %"PRId64,
>> h2g(min), h2g(max - 1) + 1,
>> - e->is_read ? 'r' : '-',
>> - e->is_write ? 'w' : '-',
>> - e->is_exec ? 'x' : '-',
>> + (flags & PAGE_READ) ? 'r' : '-',
>> + (flags & PAGE_WRITE_ORG) ? 'w' : '-',
>> + (flags & PAGE_EXEC) ? 'x' : '-',
>> e->is_priv ? 'p' : '-',
>> (uint64_t) e->offset, e->dev, e->inode);
>> if (path) {
>>
>
> It looks good.
>
> Alex, you wrote this code, any comment?
I just checked to see if we need a Fixes but it seems we've been
ignoring flags for anything other than page_check_range since the
original parsing code so I think we are good.
Acked-by: Alex Bennée <alex.bennee@linaro.org>
> Should we move this directly in read_self_maps() to have the guest
> values in MapInfo?
Nope for the reasons Richard said. read_self_maps() is a QEMU internal
function which we use elsewhere and needs to know the "real" truth ;-)
>
> Thanks,
> Laurent
--
Alex Bennée
next prev parent reply other threads:[~2021-03-09 19:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-08 9:19 [PATCH v2] linux-user: Fix executable page of /proc/self/maps Nicolas Surbayrole
2021-03-08 10:47 ` Laurent Vivier
2021-03-09 14:06 ` Richard Henderson
2021-03-09 17:58 ` Alex Bennée [this message]
2021-03-09 14:07 ` Richard Henderson
2021-03-09 20:11 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87im608atq.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=laurent@vivier.eu \
--cc=nsurbayrole@quarkslab.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.