Re: pinpointed: PANIC caused by dequeue_signal() in current Linus BK tree

From: Linus Torvalds (torvalds@transmeta.com)
Date: Sun Sep 08 2002 - 20:36:19 EST


On Mon, 9 Sep 2002, Anton Altaparmakov wrote:

> Hi,
>
> I had a look and the panic actually happens in collect_signal() in here:
>
> static inline int collect_signal(int sig, struct sigpending *list,
> siginfo_t *info)
> {
> if (sigismember(&list->signal, sig)) {
> /* Collect the siginfo appropriate to this signal. */
> struct sigqueue *q, **pp;
> pp = &list->head;
> while ((q = *pp) != NULL) {
> q becomes 0x5a5a5a5a ^^^^^^^^^
> if (q->info.si_signo == sig)
> 0x5a5a5a5a is dereferenced ^^^^^^^^^^^^^^^^
> goto found_it;
> pp = &q->next;
> }
>
> Hope this helps.

0x5a5a5a5a is the slab poisoning byte, I bet somebody free's the thing,
and Ingo and I never noticed because we didn't have slab debugging
enabled.

Ingo, mind looking at this a bit?

                Linus

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



This archive was generated by hypermail 2b29 : Sun Sep 15 2002 - 22:00:15 EST