Re: [BUG] signal: sighand unprotected when accessed by /proc

Thomas Gleixner
2014-06-03T21:12:57Z

On Tue, 3 Jun 2014, Steven Rostedt wrote:

> On Tue, 3 Jun 2014 22:09:38 +0200
> Oleg Nesterov <oleg@redhat.com> wrote:
>
> > > Now, if that lock is released and reused (I didn't trace other tasks
> > > allocating these locks), it reinitializes the lock->wait_list.
> >
> > How? From where? This should be done by sighand_ctor() only?
>
> This looks definitely like an -rt only bug and it's an obvious one at
> that :-p
>
> Looking in mm/slub.c: slab_alloc_node() we have this:
>
> if (unlikely(gfpflags & __GFP_ZERO) && object)
> memset(object, 0, s->object_size);
> #ifdef CONFIG_PREEMPT_RT_FULL
> if (unlikely(s->ctor) && object)
> s->ctor(object);
> #endif

Looks like the usual git/quilt default artifact.

That's why I have

QUILT_PATCH_OPTS="--fuzz=0"

in my .quiltrc

Thanks,

tglx