bug-hurd
[Top][All Lists]
Advanced

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

Re: Not running into expected SIGSEGV


From: Justus Winter
Subject: Re: Not running into expected SIGSEGV
Date: Tue, 23 Feb 2016 23:24:08 +0100
User-agent: alot/0.3.8.dev

Quoting Samuel Thibault (2016-02-23 23:04:25)
> Samuel Thibault, on Tue 23 Feb 2016 22:22:02 +0100, wrote:
> > Thomas Schwinge, on Tue 23 Feb 2016 12:02:36 +0100, wrote:
> > > > I couldn't figure out any pattern from looking at the diffs between the
> > > > respective Hurd packages' sources.
> > 
> > I've digged a bit, the difference that matters between -2 and -3
> > is about the protected payload optimization. -2 used to disable it
> > because we had issues with pflocal. -3 fixed the pflocal issue and thus
> > re-enabled the optimization.
> > 
> > So apparently there is at least another issue with it.
> 
> I have thus disabled it again at least in the Debian package, for now.

You should also be able to disable it in the kernel, just ignore
mach_port_set_protected_payload requests by making them return early.

> I'm wondering: what is supposed to happen if some translator didn't set
> an INTRAN_PAYLOAD?

You cannot specify an in-translation without also specifying the
payload version.  Though I must admit I don't know how or if that is
enforced.

The worst thing that can happen (and that happened in the pflocal case
iirc) is that some server function expected a receiver of type
mach_port_t and got a payload instead, and the compiler didn't notice
because the file implementing the server function didn't include the
generated header file.  It then went on to lookup the payload in the
hash table mapping port names to objects, which failed.

Justus



reply via email to

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