2010/6/12 Guido Berhoerster <[email protected]>
> Looking at the last fix for catching signals on X server startup
> I noticed that the signal handling is still flawed:
>
> Only shared objects of type volatile sig_atomic_t can be safely
> accessed and modified from within the signal handler,
> lxcom_last_sig must be declared accordingly (also note that the
> size of sig_atomic_t is implementation dependent). I also think
> this can be completely avoided if failing to start X quits lxdm
> rather than continuously restarting it.
>
> The current signal handler also still invokes several
> non-async-safe functions, i.e. lxcom_raise_signal uses sprintf
> and strlen, lxcom_write uses memset.
>
> fixed, but I don't think memset is not signal safe
> log_sigsegv is also problematic in this regard, I think
> backtrace_symbols() is not async-safe (somebody correct me if I'm
> wrong), lxdm_quit_self surely isn't, call _Exit or abort instead.
>
> I think take infomation from SIGSEGV is better than just exit, we can't
worse than it.
> Apparently (from what i gather from the GDM source), the X server
> needs SIGTTIN, SIGTTOU, and SIGUSR1 to be ignored.
>
> I don't know SIGTTIN,SIGTTOU, as xserver's doc, SIGUSR1 is optional.
> Any file operations after set_signal need to be protected against
> non-fatal signal handling, i.e. errno needs to be checked for
> EINTR and the operation if necessary repeated.
>
> You don't check any return values when setting up signal
> handlers.
>
> I'm not sure if you are aware that when you don't explicitly mask
> other signals your signal handler might be interrupted by a
> different signal.
>
> Trying to setup a signal handler for SIGKILL is a nop, it cannot
> be caught.
>
>
> --
> Guido Berhoerster
>
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Lxde-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxde-list