diff options
author | Luca Dariz <luca@orpolo.org> | 2022-06-28 12:10:44 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-08-28 02:54:32 +0200 |
commit | 14cf1efc9dfa388c3dfec3815abd114f2a36bd38 (patch) | |
tree | 2a303b17c42411720645943044315215fc6839e3 /vm | |
parent | 5e3913bb0abaac77f672366280d71503e6bb0f45 (diff) | |
download | gnumach-14cf1efc9dfa388c3dfec3815abd114f2a36bd38.tar.gz gnumach-14cf1efc9dfa388c3dfec3815abd114f2a36bd38.tar.bz2 gnumach-14cf1efc9dfa388c3dfec3815abd114f2a36bd38.zip |
sign-extend mask in vm_map() with 32-bit userspace
* vm/vm_user.c: sign-extend mask with USER32
Signed-off-by: Luca Dariz <luca@orpolo.org>
Message-Id: <20220628101054.446126-6-luca@orpolo.org>
Diffstat (limited to 'vm')
-rw-r--r-- | vm/vm_user.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/vm/vm_user.c b/vm/vm_user.c index 3ef64dfc..9e789eba 100644 --- a/vm/vm_user.c +++ b/vm/vm_user.c @@ -338,6 +338,11 @@ kern_return_t vm_map( if (size == 0) return KERN_INVALID_ARGUMENT; +#ifdef USER32 + if (mask & 0x80000000) + mask |= 0xffffffff00000000; +#endif + *address = trunc_page(*address); size = round_page(size); |