Re: more data

Date view Thread view Subject view Author view

From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Sat Feb 06 1999 - 23:10:47 EST


On Feb 5, 1999, Godmar Back <gback@cs.utah.edu> wrote:

> Where could a pattern like this (numbers increasing by 16) come from?

Maybe from the uninitialized jump table, before the relocator fixes it
up.

> So, the question is: is this a bug in ld.so?

I doubt it. But it might be a problem in the signal dispatcher; if it
doesn't save/restore registers properly, we might observe this kind of
problem. But it would be very surprising if both Solaris' and Linux'
dispatchers were broken...

> And why does it only happen when SIGVTALRM is enabled *and* unblocks
> the signals from with the handler? Is it because ld.so's routines are
> not async-signal-safe?

That should only be a problem if we actually context-switched or
called some library function from within the signal handler, but we
apparently don't. Unless dlopen modifies some global symbol table in
a way that calling unrelated code may crash. In this case, we'd have
to block signals before dlopening anything. This would probably be a
good idea in general. Is blocking signals part of the threading API?

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:59 EDT