libmach: fix incorrect use of memset

Fixes #2213.

R=rsc
CC=golang-dev
https://golang.org/cl/4975047
diff --git a/src/libmach/executable.c b/src/libmach/executable.c
index fa0fa1b..9d45323 100644
--- a/src/libmach/executable.c
+++ b/src/libmach/executable.c
@@ -811,7 +811,7 @@
 		buf = malloc(sh[ep->shstrndx].size);
 		if (buf == 0)
 			goto done;
-		memset(buf, 0, sizeof buf);
+		memset(buf, 0, sh[ep->shstrndx].size);
 		seek(fd, sh[ep->shstrndx].offset, 0);
 		i = read(fd, buf, sh[ep->shstrndx].size);
 		USED(i);	// shut up ubuntu gcc
@@ -989,7 +989,7 @@
 		buf = malloc(sh[ep->shstrndx].size);
 		if (buf == 0)
 			goto done;
-		memset(buf, 0, sizeof buf);
+		memset(buf, 0, sh[ep->shstrndx].size);
 		seek(fd, sh[ep->shstrndx].offset, 0);
 		i = read(fd, buf, sh[ep->shstrndx].size);
 		USED(i);	// shut up ubuntu gcc