git: plan9front

Download patch

ref: 83b56186e46087b06b2af8d58ff293eda6be6bad
parent: 105ebc327abe965cf11242e6c300d28979938f5e
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 */
--