Date: Thu, 07 Jun 2001 15:21:31 +0200 From: Stefan Hoffmeister <freebsd-ml@econos.de> To: freebsd-hackers@FreeBSD.ORG Subject: libc_r, signal handler ucontext modification Message-ID: <j5vuhtsb6uoenhdpo23qo2ouerqs0i17lm@4ax.com>
next in thread | raw e-mail | index | archive | help
Hi, given the following * FreeBSD 4.3 Release (i386) * an application linked against libc_r * and a signal handler installed with the SA_SIGINFO flag which implies that the signal handler will be called with int Signal, int SomethingBoring, uncontext_t* ucontext ow should the implementation of libc_r (!) behave if the application modifies the ucontext passed in to the signal handler? In particular, how should the implementation behave if the_ucontext->m_context->mc_eip is modified, setting EIP to, say, a fault handler? Some random observations: * Currently libc_r seems to ignore these changes made to the context. * When the application is linked against libc, EIP is switched (i.e. the intended effect takes place); this implies that the behaviour shown by libc and libc_r diverges. * Under Linux, modifying EIP has the intended effect. I admit that all this is somewhat anecdotal, but I haven't looked in detail yet at what happens after the signal handler has returned to uthread/uthread_sig.c -> _thread_sig_wrapper If someone needs some sample code, I'd be happy to cook up something once I have booted into FreeBSD again. Any thoughts? TIA! Stefan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?j5vuhtsb6uoenhdpo23qo2ouerqs0i17lm>