diff options
| author | Ondřej Surý <ondrej@sury.org> | 2012-01-30 15:38:19 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2012-01-30 15:38:19 +0100 |
| commit | 4cecda6c347bd6902b960c6a35a967add7070b0d (patch) | |
| tree | a462e224ff41ec9f3eb1a0b6e815806f9e8804ad /src/cmd/ld/go.c | |
| parent | 6c7ca6e4d4e26e4c8cbe0d183966011b3b088a0a (diff) | |
| download | golang-4cecda6c347bd6902b960c6a35a967add7070b0d.tar.gz | |
Imported Upstream version 2012.01.27upstream-weekly/2012.01.27
Diffstat (limited to 'src/cmd/ld/go.c')
| -rw-r--r-- | src/cmd/ld/go.c | 7 |
1 files changed, 5 insertions, 2 deletions
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); |
