]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: make -a output not crash
authorRuss Cox <rsc@golang.org>
Tue, 11 Aug 2015 14:59:24 +0000 (10:59 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 11 Aug 2015 19:12:59 +0000 (19:12 +0000)
Fixes #12107.

Change-Id: I62f1b6ac9fb6f2cfa3472253dc1c6f7b7d2a6faf
Reviewed-on: https://go-review.googlesource.com/13448
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/cmd/link/internal/ld/data.go

index 33f250da48c761ac847b3d01c0f7c47117aac986..55b12e5ececa36f511943f182b170f485235caa7 100644 (file)
@@ -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 {