1
0
mirror of https://github.com/golang/go synced 2024-10-03 06:21:21 -06:00

catch corruption - avoid crash

R=rsc
DELTA=4  (4 added, 0 deleted, 0 changed)
OCL=31192
CL=31198
This commit is contained in:
Rob Pike 2009-07-06 10:58:55 -07:00
parent deb954772d
commit d3a2925bb2

View File

@ -295,6 +295,10 @@ func decodeStruct(engine *decEngine, rtyp reflect.StructType, r io.Reader, p uin
basep := p;
for state.err == nil {
delta := int(DecodeUint(state));
if delta < 0 {
state.err = os.ErrorString("gob decode: corrupted data: negative delta");
break
}
if state.err != nil || delta == 0 { // struct terminator is zero delta fieldnum
break
}