diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-07 16:11:35 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-07 16:11:35 +0200 |
commit | ef1c1863051d0530a31b291f4e334ee7601c318c (patch) | |
tree | 20cd1f57bd5f98c9c364c1ba35b492e7d714d266 /sys/src/cmd/vac/file.c | |
parent | 37a93ef857ad49bee2059a5a52f50190b7bf040f (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.c | 7 |
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; } |