From a000f8817b32eadd4aeadf9185634350a59e6649 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Fri, 14 Sep 2018 20:22:56 +0100 Subject: [PATCH] LD: Avoid a division by zero page size with SEGMENT_START handling Avoid a division by zero and thus a linker crash in SEGMENT_START script builtin function handling, by not checking the value supplied with a `-T' command-line override against the maximum page size if that has not been set. ld/ * ldexp.c (fold_binary): Check that `config.maxpagesize' is non-zero before using it as a divisor. --- ld/ChangeLog | 5 +++++ ld/ldexp.c | 1 + 2 files changed, 6 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index f1a55063d62..bda269c5a84 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2018-09-14 Maciej W. Rozycki + + * ldexp.c (fold_binary): Check that `config.maxpagesize' is + non-zero before using it as a divisor. + 2018-09-03 Nick Clifton * po/fi.po: Updated Finnish translation. diff --git a/ld/ldexp.c b/ld/ldexp.c index e123f0e35fe..4b9676ecbab 100644 --- a/ld/ldexp.c +++ b/ld/ldexp.c @@ -545,6 +545,7 @@ fold_binary (etree_type *tree) { if (!seg->used && config.magic_demand_paged + && config.maxpagesize != 0 && (seg->value % config.maxpagesize) != 0) einfo (_("%P: warning: address of `%s' " "isn't multiple of maximum page size\n"), -- 2.30.2