ref: cf403224f6a21ecf61c3a092eb4908ae84e7827b
parent: 7d419acda9fed5621bd88d6bbecb7d1d1fa8edcc
author: cinap_lenrek <cinap_lenrek@rei2>
date: Sat Jan 28 22:48:24 EST 2012
plumber: fix memory leaks
--- a/sys/src/cmd/plumb/plumber.c
+++ b/sys/src/cmd/plumb/plumber.c
@@ -122,6 +122,7 @@
p = malloc(n);
if(p == nil)
error("malloc failed: %r");+ setmalloctag(p, getcallerpc(&n));
memset(p, 0, n);
return p;
}
@@ -132,6 +133,7 @@
p = realloc(p, n);
if(p == nil)
error("realloc failed: %r");+ setrealloctag(p, getcallerpc(&p));
return p;
}
@@ -143,5 +145,6 @@
t = strdup(s);
if(t == nil)
error("estrdup failed: %r");+ setmalloctag(t, getcallerpc(&s));
return t;
}
--- a/sys/src/cmd/plumb/rules.c
+++ b/sys/src/cmd/plumb/rules.c
@@ -123,6 +123,7 @@
Bterm(in->fd);
free(in->fd);
}
+ free(in->file);
free(in);
return 1;
}
@@ -572,6 +573,7 @@
parseerror("too many ports");if(lookup(r->qarg, badports) >= 0)
parseerror("illegal port name %s", r->qarg);+ free(rs->port);
rs->port = estrdup(r->qarg);
}else
ncmd++; /* start or client rule */
--
⑨