Re: [PATCH v2] sparc64: do not clobber personality flags insys_sparc64_personality()

From: Jiri Kosina
Date: Thu Aug 02 2012 - 18:16:24 EST


On Thu, 2 Aug 2012, Sam Ravnborg wrote:

> > >From 4f000eda5917ceecb03767962026cc6a390b8216 Mon Sep 17 00:00:00 2001
> > From: Jiri Kosina <jkosina@xxxxxxx>
> > Date: Wed, 1 Aug 2012 21:10:51 +0200
> > Subject: [PATCH 4/4] sparc64: do not clobber personality flags in sys_sparc64_personality()
> >
> > There are multiple errors in how sys_sparc64_personality() handles
> > personality flags stored in top three bytes.
> >
> > - directly comparing current->personality against PER_LINUX32 doesn't work
> > in cases when any of the personality flags stored in the top three bytes
> > are used.
> > - directly forcefully setting personality to PER_LINUX32 or PER_LINUX
> > discards any flags stored in the top three bytes
> >
> > Fix the first one by properly using personality() macro to compare only
> > PER_MASK bytes.
> > Fix the second one by setting only the bits that should be set, instead of
> > overwriting the whole value.
>
> Hi Jiri.
>
> Can you have a quick look at this too:
> arch/sparc/include/asm/elf_32.h:#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
>
> From your other comments it looks wrong. But I have not digged into
> this.

It actually seems like much more architectures than just sparc are
clobbering upper bytes of personality upon exec(). Thanks for pointing
that out, it'd be worthwile to go over those and fix them up. I am adding
that to my TODO.

Thanks,

--
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/