aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/srv/clump.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/venti/srv/clump.c')
-rw-r--r--src/cmd/venti/srv/clump.c7
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);