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

From: Steven Rostedt
Date: Tue Jun 03 2014 - 16:15:24 EST


On Tue, 3 Jun 2014 22:09:38 +0200
Oleg Nesterov <oleg@xxxxxxxxxx> 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?

heh, the more I look at this code, the deeper in the rabbit hole I go.

OK, I didn't understand this in the first place. I see that
sighand_ctor() is only called when the entire slab is created, correct?

That means, when you allocate a new sighand, it doesn't get
re-initialized, and the sighand->lock should still be the old lock.

That makes sense. I'll need to look at this some more :-/ Maybe
there's another bug that I'm missing and I'm climbing the wrong tree.

-- Steve
--
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/