> >Yes, SIGABRT is synchronous for all purposes. So the only danger is
> >that g_string_free() or g_free() could fail while we're in
> >g_assert(false). But they don't, which makes sense because they are
> >totally unrelated to g_assert() and therefore can handle re-entrancy.
>
> If malloc aborts due to a double free or other similar problem, you
> may risk reentering it.
If you register the custom SIGABRT handler with sigaction + SA_RESETHAND
then you'd avoid the re-entrancy risk, since a cascading SIGABRT would
get handled by the system default handler, which would immediately
terminate the process.