[PATCH v7 1/4] Warn on unsupported fortification levels
Adhemerval Zanella
adhemerval.zanella@linaro.org
Thu Dec 31 10:45:52 GMT 2020
On 30/12/2020 03:43, Siddhesh Poyarekar wrote:
> Make the _FORTIFY_SOURCE macro soup in features.h warn about
> unsupported fortification levels. For example, it will warn about
> _FORTIFY_SOURCE=3 and over with an indication of which level has been
> selected.
>
> Co-authored-by: Paul Eggert <eggert@cs.ucla.edu>
LGTM, although I think the NEWS entry should move to the second patch.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> NEWS | 6 ++++++
> include/features.h | 3 +++
> manual/creature.texi | 3 ++-
> 3 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/NEWS b/NEWS
> index 86e05fb023..8e02dbd0f7 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -28,6 +28,12 @@ Major new features:
> The 32-bit RISC-V port requires at least Linux 5.4, GCC 7.1 and binutils
> 2.28.
>
> +* A new fortification level _FORTIFY_SOURCE=3 is available. At this level,
> + glibc may use additional checks that may have an additional performance
> + overhead. At present these checks are available only on LLVM 9 and later.
> + The latest GCC available at this time (10.2) does not support this level of
> + fortification.
> +
> Deprecated and removed features, and other changes affecting compatibility:
>
> * The mallinfo function is marked deprecated. Callers should call
Maybe move this NEWS entry to second patch, where this is actually enabled?
> diff --git a/include/features.h b/include/features.h
> index f3e62d3362..540230b90b 100644
> --- a/include/features.h
> +++ b/include/features.h
> @@ -398,6 +398,9 @@
> # elif !__GNUC_PREREQ (4, 1)
> # warning _FORTIFY_SOURCE requires GCC 4.1 or later
> # elif _FORTIFY_SOURCE > 1
> +# if _FORTIFY_SOURCE > 2
> +# warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform
> +# endif
> # define __USE_FORTIFY_LEVEL 2
> # else
> # define __USE_FORTIFY_LEVEL 1
> diff --git a/manual/creature.texi b/manual/creature.texi
> index be5050468b..31208ccb2b 100644
> --- a/manual/creature.texi
> +++ b/manual/creature.texi
> @@ -254,7 +254,8 @@ included.
> @standards{GNU, (none)}
> If this macro is defined to @math{1}, security hardening is added to
> various library functions. If defined to @math{2}, even stricter
> -checks are applied.
> +checks are applied. If defined to @math{3}, @theglibc{} may also use
> +checks that may have an additional performance overhead.
> @end defvr
>
> @defvr Macro _REENTRANT
>
More information about the Libc-alpha
mailing list