{
struct sandbox_parent_own_orbit_dir_cleanup_signal *sigstructp;
- g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"%s: signum=%d",G_STRLOC,signum);
-
- sandbox_parent_own_orbit_dir_cleanup_atexit();
-
for (
sigstructp=sandbox_parent_own_orbit_dir_cleanup_signals;
sigstructp<sandbox_parent_own_orbit_dir_cleanup_signals+G_N_ELEMENTS(sandbox_parent_own_orbit_dir_cleanup_signals);
break;
}
g_assert(sigstructp<sandbox_parent_own_orbit_dir_cleanup_signals+G_N_ELEMENTS(sandbox_parent_own_orbit_dir_cleanup_signals));
- g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"%s: sighandler_orig=%p,re-raising...",G_STRLOC,sigstructp->sighandler_orig);
signal(signum,sigstructp->sighandler_orig);
+
+ /* Prevent recursive fatal logging before signal restore: */
+ g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"%s: signum=%d,sighandler_orig=%p",G_STRLOC,signum,sigstructp->sighandler_orig);
+
+ sandbox_parent_own_orbit_dir_cleanup_atexit();
+
+ g_log(G_LOG_DOMAIN,G_LOG_LEVEL_DEBUG,"%s: re-raising...",G_STRLOC);
raise(signum);
}