[PATCH 2/2] stdlib: Make abort AS-safe (BZ 26275)
Florian Weimer
fweimer@redhat.com
Tue Aug 1 08:10:21 GMT 2023
* Adhemerval Zanella via Libc-alpha:
> diff --git a/sysdeps/generic/internal-signals.h b/sysdeps/generic/internal-signals.h
> index e2e9f9fd49..1c0f7b2e6c 100644
> --- a/sysdeps/generic/internal-signals.h
> +++ b/sysdeps/generic/internal-signals.h
> @@ -42,7 +42,31 @@ clear_internal_signals (sigset_t *set)
> typedef sigset_t internal_sigset_t;
>
> #define internal_sigemptyset(__s) __sigemptyset (__s)
> +#define internal_sigfillset(__s) __sigfillset (__s)
> #define internal_sigaddset(__s, __i) __sigaddset (__s, __i)
> #define internal_sigprocmask(__h, __s, __o) __sigprocmask (__h, __s, __o)
>
> +static inline void
> +internal_signal_block_all (internal_sigset_t *oset)
> +{
> + internal_sigset_t set;
> + internal_sigfillset (&set);
> + internal_sigprocmask (SIG_BLOCK, &set, oset);
> +}
> +
> +static inline void
> +internal_signal_restore_set (const internal_sigset_t *set)
> +{
> + internal_sigprocmask (SIG_SETMASK, set, NULL);
> +}
> +
> +static inline void
> +internal_signal_unblock_signal (int sig)
> +{
> + internal_sigset_t set;
> + internal_sigemptyset (&set);
> + internal_sigaddset (&set, sig);
> + internal_sigprocmask (SIG_UNBLOCK, &set, NULL);
> +}
> +
> #endif /* __INTERNAL_SIGNALS_H */
This should probably go into a separate patch. I recall writing a
similar patch, can't find it right now.
Thanks,
Florian
More information about the Libc-alpha
mailing list