Commit Diff


commit - 258cfab2fe5a816f23723f696c53ad6e61f6b501
commit + 68e24566b6ba442b2bdba2dfc111c5a0d333cc42
blob - 5f8963105b05104f5d0654f335508ef3df40066b
blob + 03ada7b99435384b4a42af9d32c83e681b48a47d
--- src/cmd/vac/vac.c
+++ src/cmd/vac/vac.c
@@ -501,12 +501,17 @@ vac(VacFile *fp, VacFile *diffp, char *name, Dir *d)
 
 	if(vacfilesetdir(f, &vd) < 0)
 		warn("vacfilesetdir %s: %r", name);
-	
+
+	bsize = fs->bsize;
+	if(buf == nil)
+		buf = vtmallocz(bsize);
+
 #ifdef PLAN9PORT
 	if(d->mode&(DMSOCKET|DMNAMEDPIPE)){
 		/* don't write anything */
 	}
 	else if(d->mode&DMSYMLINK){
+		memset(buf, 0, sizeof buf);
 		n = readlink(name, buf, sizeof buf);
 		if(n > 0 && vacfilewrite(f, buf, n, 0) < 0){
 			warn("venti write %s: %r", name);
@@ -539,9 +544,6 @@ vac(VacFile *fp, VacFile *diffp, char *name, Dir *d)
 		}
 	}else{
 		off = 0;
-		bsize = fs->bsize;
-		if(buf == nil)
-			buf = vtmallocz(bsize);
 		if(fdiff){
 			/*
 			 * Copy fdiff's contents into f by moving the score.