LD: Avoid a division by zero page size with SEGMENT_START handling
authorMaciej W. Rozycki <macro@linux-mips.org>
Fri, 14 Sep 2018 19:22:56 +0000 (20:22 +0100)
committerMaciej W. Rozycki <macro@linux-mips.org>
Fri, 14 Sep 2018 19:22:56 +0000 (20:22 +0100)
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
ld/ldexp.c

index f1a55063d6265c5497ebe277c7a071c1c5689bd8..bda269c5a846b60be5250610d76b0ed31f6ac534 100644 (file)
@@ -1,3 +1,8 @@
+2018-09-14  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * ldexp.c (fold_binary): Check that `config.maxpagesize' is
+       non-zero before using it as a divisor.
+
 2018-09-03  Nick Clifton  <nickc@redhat.com>
 
        * po/fi.po: Updated Finnish translation.
index e123f0e35fe12fd129e7d49830c1b9255dd6752e..4b9676ecbab6cef813aa0ed92d682a9a46bdd76a 100644 (file)
@@ -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"),