diff options
Diffstat (limited to 'src/cmd/venti/srv/clump.c')
-rw-r--r-- | src/cmd/venti/srv/clump.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/venti/srv/clump.c b/src/cmd/venti/srv/clump.c index 88ebdb50..ec277864 100644 --- a/src/cmd/venti/srv/clump.c +++ b/src/cmd/venti/srv/clump.c @@ -91,7 +91,7 @@ clumpmagic(Arena *arena, u64int aa) { u8int buf[U32Size]; - if(readarena(arena, aa, buf, U32Size) < 0) + if(readarena(arena, aa, buf, U32Size) == TWID32) return TWID32; return unpackmagic(buf); } @@ -138,6 +138,11 @@ loadclump(Arena *arena, u64int aa, int blocks, Clump *cl, u8int *score, int veri freezblock(cb); return nil; } + if(cl->info.type == VtCorruptType){ + seterr(EOk, "clump is marked corrupt"); + freezblock(cb); + return nil; + } n -= ClumpSize; if(n < cl->info.size){ freezblock(cb); |