qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.4] linux-user: Restore cast to target type


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH for-1.4] linux-user: Restore cast to target type in get_user()
Date: Tue, 5 Feb 2013 20:18:46 +0000

Ping as a for-1.4 patch with reviews.
patchwork url: http://patchwork.ozlabs.org/patch/217186/

Blue, Anthony: could one of you apply this, please?

thanks
-- PMM

On 31 January 2013 12:50, Peter Maydell <address@hidden> wrote:
> Commit 658f2dc97 accidentally dropped the cast to the target type of
> the value loaded by get_user().  The most visible effect of this would
> be that the sequence "uint64_t v; get_user_u32(v, addr)" would sign
> extend the 32 bit loaded value into v rather than zero extending as
> would be expected for a _u32 accessor.  Put the cast back again to
> restore the old behaviour.
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
>  linux-user/qemu.h |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/linux-user/qemu.h b/linux-user/qemu.h
> index 31a220a..b10e957 100644
> --- a/linux-user/qemu.h
> +++ b/linux-user/qemu.h
> @@ -306,12 +306,12 @@ static inline int access_ok(int type, abi_ulong addr, 
> abi_ulong size)
>       ((hptr), (x)), 0)
>
>  #define __get_user_e(x, hptr, e)                                        \
> -  ((x) =                                                                \
> +  ((x) = (typeof(*hptr))(                                               \
>     __builtin_choose_expr(sizeof(*(hptr)) == 1, ldub_p,                  \
>     __builtin_choose_expr(sizeof(*(hptr)) == 2, lduw_##e##_p,            \
>     __builtin_choose_expr(sizeof(*(hptr)) == 4, ldl_##e##_p,             \
>     __builtin_choose_expr(sizeof(*(hptr)) == 8, ldq_##e##_p, abort))))   \
> -     (hptr), 0)
> +     (hptr)), 0)
>
>  #ifdef TARGET_WORDS_BIGENDIAN
>  # define __put_user(x, hptr)  __put_user_e(x, hptr, be)
> --
> 1.7.9.5



reply via email to

[Prev in Thread] Current Thread [Next in Thread]