From 8ce80ce87ded2c02a3b7c2f15cbd19e8c2cc062d Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 11 Aug 2015 10:59:24 -0400 Subject: [PATCH] cmd/link: make -a output not crash Fixes #12107. Change-Id: I62f1b6ac9fb6f2cfa3472253dc1c6f7b7d2a6faf Reviewed-on: https://go-review.googlesource.com/13448 Reviewed-by: David Crawshaw --- src/cmd/link/internal/ld/data.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go index 33f250da48..55b12e5ece 100644 --- a/src/cmd/link/internal/ld/data.go +++ b/src/cmd/link/internal/ld/data.go @@ -778,7 +778,6 @@ func Codeblk(addr int64, size int64) { } eaddr := addr + size - var n int64 var q []byte for ; sym != nil; sym = sym.Next { if !sym.Reachable { @@ -797,20 +796,18 @@ func Codeblk(addr int64, size int64) { } fmt.Fprintf(&Bso, "%.6x\t%-20s\n", uint64(int64(addr)), sym.Name) - n = sym.Size q = sym.P - for n >= 16 { - fmt.Fprintf(&Bso, "%.6x\t%-20.16I\n", uint64(addr), q) + for len(q) >= 16 { + fmt.Fprintf(&Bso, "%.6x\t% x\n", uint64(addr), q[:16]) addr += 16 q = q[16:] - n -= 16 } - if n > 0 { - fmt.Fprintf(&Bso, "%.6x\t%-20.*I\n", uint64(addr), int(n), q) + if len(q) > 0 { + fmt.Fprintf(&Bso, "%.6x\t% x\n", uint64(addr), q) + addr += int64(len(q)) } - addr += n } if addr < eaddr { -- 2.48.1