Re: [PATCH] s390/decompressor: add fortify_panic as x86 has.

From: Martin Schwidefsky
Date: Thu Dec 07 2017 - 07:55:18 EST


On Thu, 7 Dec 2017 11:37:27 +0100
Michal Suchanek <msuchanek@xxxxxxx> wrote:

> Fix following error:
>
> LD arch/s390/boot/compressed/vmlinux
> drivers/s390/char/sclp_early_core.o: In function `memcpy':
> ../include/linux/string.h:340: undefined reference to `fortify_panic'
> make[4]: *** [../arch/s390/boot/compressed/Makefile:29: arch/s390/boot/compressed/vmlinux] Error 1
>
> Fixes: 79962038dffa ("s390: add support for FORTIFY_SOURCE")
> Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
> ---
> arch/s390/boot/compressed/misc.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/s390/boot/compressed/misc.c b/arch/s390/boot/compressed/misc.c
> index cecf38b9ec82..e79c4499c548 100644
> --- a/arch/s390/boot/compressed/misc.c
> +++ b/arch/s390/boot/compressed/misc.c
> @@ -174,3 +174,7 @@ unsigned long decompress_kernel(void)
> return (unsigned long) output;
> }
>
> +void fortify_panic(const char *name)
> +{
> + error("detected buffer overflow");
> +}

Odd, the current linux master tree builds just fine with CONFIG_FORTIFY_SOURCE=y.
There *is* a reference to fortify_panic in drivers/s390/char/sclp_early.o.
This object is included in the link for the compressed vmlinux, but the
function that contains the call to fortify_panic is not included in the
compressed image. I wonder what causes this difference in behavior.

The patch makes sense though and I will add it to the queue.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.