aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/srv/conv.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2007-04-21 19:40:55 +0000
committerrsc <devnull@localhost>2007-04-21 19:40:55 +0000
commit27d28098203579f0735ba6400641e9be94eb12f8 (patch)
tree9e0f390ced0de8c582ef3226c420daa18d16ac24 /src/cmd/venti/srv/conv.c
parent33433b3fde56d9b3ac6de6ee2584416b82bc856f (diff)
downloadplan9port-27d28098203579f0735ba6400641e9be94eb12f8.tar.gz
plan9port-27d28098203579f0735ba6400641e9be94eb12f8.tar.bz2
plan9port-27d28098203579f0735ba6400641e9be94eb12f8.zip
sync with mit plan 9 version
Diffstat (limited to 'src/cmd/venti/srv/conv.c')
-rw-r--r--src/cmd/venti/srv/conv.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/cmd/venti/srv/conv.c b/src/cmd/venti/srv/conv.c
index 58b3d25c..6c8d9efb 100644
--- a/src/cmd/venti/srv/conv.c
+++ b/src/cmd/venti/srv/conv.c
@@ -34,7 +34,7 @@ fmtmagic(char *s, u32int m)
for(i=0; i<nelem(magics); i++)
if(magics[i].m == m)
return magics[i].s;
- sprint(s, "0x%08ux", m);
+ sprint(s, "%#08ux", m);
return s;
}
@@ -61,7 +61,7 @@ unpackarenapart(ArenaPart *ap, u8int *buf)
m = U32GET(p);
if(m != ArenaPartMagic){
- seterr(ECorrupt, "arena set has wrong magic number: %s expected ArenaPartMagic (%lux)", fmtmagic(fbuf, m), ArenaPartMagic);
+ seterr(ECorrupt, "arena set has wrong magic number: %s expected ArenaPartMagic (%#lux)", fmtmagic(fbuf, m), ArenaPartMagic);
return -1;
}
p += U32Size;
@@ -112,7 +112,7 @@ unpackarena(Arena *arena, u8int *buf)
m = U32GET(p);
if(m != ArenaMagic){
- seterr(ECorrupt, "arena has wrong magic number: %s expected ArenaMagic (%lux)", fmtmagic(fbuf, m), ArenaMagic);
+ seterr(ECorrupt, "arena has wrong magic number: %s expected ArenaMagic (%#lux)", fmtmagic(fbuf, m), ArenaMagic);
return -1;
}
p += U32Size;
@@ -276,10 +276,15 @@ unpackarenahead(ArenaHead *head, u8int *buf)
u8int *p;
u32int m;
int sz;
+ char fbuf[20];
p = buf;
m = U32GET(p);
+ if(m != ArenaHeadMagic){
+ seterr(ECorrupt, "arena has wrong magic number: %s expected ArenaHeadMagic (%#lux)", fmtmagic(fbuf, m), ArenaHeadMagic);
+ return -1;
+ }
/* XXX check magic! */
p += U32Size;
@@ -497,7 +502,7 @@ unpackisect(ISect *is, u8int *buf)
m = U32GET(p);
if(m != ISectMagic){
- seterr(ECorrupt, "index section has wrong magic number: %s expected ISectMagic (%lux)",
+ seterr(ECorrupt, "index section has wrong magic number: %s expected ISectMagic (%#lux)",
fmtmagic(fbuf, m), ISectMagic);
return -1;
}
@@ -665,7 +670,7 @@ unpackbloomhead(Bloom *b, u8int *buf)
m = U32GET(p);
if(m != BloomMagic){
- seterr(ECorrupt, "bloom filter has wrong magic number: %s expected BloomMagic (%lux)", fmtmagic(fbuf, m), (ulong)BloomMagic);
+ seterr(ECorrupt, "bloom filter has wrong magic number: %s expected BloomMagic (%#lux)", fmtmagic(fbuf, m), (ulong)BloomMagic);
return -1;
}
p += U32Size;
@@ -682,6 +687,10 @@ unpackbloomhead(Bloom *b, u8int *buf)
b->size = U32GET(p);
p += U32Size;
+ if(b->size < BloomHeadSize || b->size > MaxBloomSize || (b->size&(b->size-1))){
+ seterr(ECorrupt, "bloom filter has invalid size %#lux", b->size);
+ return -1;
+ }
if(buf + BloomHeadSize != p)
sysfatal("unpackarena unpacked wrong amount");