9660srv leaked memory on each walk if the destination can't be found. Reference: /n/sources/patch/applied/9660srv-walk-leak Date: Fri Jun 17 10:52:06 CES 2011 Signed-off-by: cinap_lenrek@gmx.de --- /sys/src/cmd/9660srv/main.c Fri Jun 17 10:50:03 2011 +++ /sys/src/cmd/9660srv/main.c Fri Jun 17 10:50:01 2011 @@ -246,6 +246,7 @@ p = malloc(n); if(p == 0) error("no memory"); + setmalloctag(p, getcallerpc(&n)); return p; } @@ -365,8 +366,6 @@ } if(waserror()){ - if(nf != nil) - xfile(req->newfid, Clunk); if(rep->nwqid == req->nwname){ if(oldlen) free(oldptr); @@ -378,6 +377,8 @@ f->ptr = oldptr; f->len = oldlen; } + if(nf != nil) + xfile(req->newfid, Clunk); if(rep->nwqid==req->nwname || rep->nwqid > 0){ err_msg[0] = '\0'; return;