[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Patch] linux-user/syscall.c - don't add GUEST_BASE to
From: |
Jan-Simon Möller |
Subject: |
Re: [Qemu-devel] [Patch] linux-user/syscall.c - don't add GUEST_BASE to NULL pointer |
Date: |
Fri, 28 Aug 2009 15:20:59 +0200 |
User-agent: |
KMail/1.9.9 |
Am Mittwoch 26 August 2009 15:40:43 schrieb Riku Voipio:
> On Wed, Aug 26, 2009 at 01:37:48AM +0200, Jan-Simon Möller wrote:
> > Thinking a bit more about this, I wonder if g2h(x) shouldn't itself
> > always return NULL on x = NULL ?
>
> I agree this seems like a a better idea than modifying the users of g2h.
>
> > Something like:
> >
> > Signed-off-by: Jan-Simon Möller <address@hidden>
> >
> > diff --git a/cpu-all.h b/cpu-all.h
> > index 1a6a812..631f678 100644
> > --- a/cpu-all.h
> > +++ b/cpu-all.h
> > @@ -633,7 +633,7 @@ extern int have_guest_base;
> > #endif
> >
> > /* All direct uses of g2h and h2g need to go away for usermode softmmu.
> > */ -#define g2h(x) ((void *)((unsigned long)(x) + GUEST_BASE))
> > +#define g2h(x) ( !x ? NULL:((void *)((unsigned long)(x) + GUEST_BASE)))
> > #define h2g(x) ({ \
> > unsigned long __ret = (unsigned long)(x) - GUEST_BASE; \
> > /* Check if given address fits target address space */ \
> >
> >
Take the first patch for syscall.c / mount .
Unfortunately, the above one has side-effects where functions rely on a
shifted NULL pointer ...
Best,
Jan-Simon