summaryrefslogtreecommitdiff
path: root/sys/src/cmd/vac/file.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-08-07 16:11:35 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-08-07 16:11:35 +0200
commitef1c1863051d0530a31b291f4e334ee7601c318c (patch)
tree20cd1f57bd5f98c9c364c1ba35b492e7d714d266 /sys/src/cmd/vac/file.c
parent37a93ef857ad49bee2059a5a52f50190b7bf040f (diff)
venti: fix possible nil deref in libventi vtgetreq() and cleanup vacfs (import from sources)
Diffstat (limited to 'sys/src/cmd/vac/file.c')
-rw-r--r--sys/src/cmd/vac/file.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/src/cmd/vac/file.c b/sys/src/cmd/vac/file.c
index cc88eabd2..119e07cde 100644
--- a/sys/src/cmd/vac/file.c
+++ b/sys/src/cmd/vac/file.c
@@ -1592,6 +1592,11 @@ vacfilesetdir(VacFile *f, VacDir *dir)
f->dir.gid = vtstrdup(dir->gid);
}
+ if(strcmp(f->dir.mid, dir->mid) != 0){
+ vtfree(f->dir.mid);
+ f->dir.mid = vtstrdup(dir->mid);
+ }
+
f->dir.mtime = dir->mtime;
f->dir.atime = dir->atime;
@@ -1774,7 +1779,7 @@ vacfsopen(VtConn *z, char *file, int mode, int ncache)
char *prefix;
if(vtparsescore(file, &prefix, score) >= 0){
- if(strcmp(prefix, "vac") != 0){
+ if(prefix == nil || strcmp(prefix, "vac") != 0){
werrstr("not a vac file");
return nil;
}