From 4cecda6c347bd6902b960c6a35a967add7070b0d Mon Sep 17 00:00:00 2001 From: Ondřej Surý Date: Mon, 30 Jan 2012 15:38:19 +0100 Subject: Imported Upstream version 2012.01.27 --- src/cmd/ld/go.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/cmd/ld/go.c') diff --git a/src/cmd/ld/go.c b/src/cmd/ld/go.c index fd7278a7b..2bda628cd 100644 --- a/src/cmd/ld/go.c +++ b/src/cmd/ld/go.c @@ -235,7 +235,7 @@ loadpkgdata(char *file, char *pkg, char *data, int len) x = ilookup(name); if(x->prefix == nil) { x->prefix = prefix; - x->def = def; + x->def = strdup(def); x->file = file; } else if(strcmp(x->prefix, prefix) != 0) { fprint(2, "%s: conflicting definitions for %s\n", argv0, name); @@ -248,7 +248,10 @@ loadpkgdata(char *file, char *pkg, char *data, int len) fprint(2, "%s:\t%s %s %s\n", file, prefix, name, def); nerrors++; } + free(name); + free(def); } + free(file); } // replace all "". with pkg. @@ -264,7 +267,7 @@ expandpkg(char *t0, char *pkg) n++; if(n == 0) - return t0; + return strdup(t0); // use malloc, not mal, so that caller can free w0 = malloc(strlen(t0) + strlen(pkg)*n); -- cgit v1.2.3