Don't crash on reading empty index

This commit is contained in:
Jakob Borg 2013-12-15 13:12:32 +01:00
parent bfe935b5ab
commit 8589a0fb40

View File

@ -69,19 +69,22 @@ func (r *marshalReader) readHeader() header {
} }
func (r *marshalReader) readIndex() []FileInfo { func (r *marshalReader) readIndex() []FileInfo {
var files []FileInfo
nfiles := r.readUint32() nfiles := r.readUint32()
files := make([]FileInfo, nfiles) if nfiles > 0 {
for i := range files { files = make([]FileInfo, nfiles)
files[i].Name = r.readString() for i := range files {
files[i].Flags = r.readUint32() files[i].Name = r.readString()
files[i].Modified = int64(r.readUint64()) files[i].Flags = r.readUint32()
nblocks := r.readUint32() files[i].Modified = int64(r.readUint64())
blocks := make([]BlockInfo, nblocks) nblocks := r.readUint32()
for j := range blocks { blocks := make([]BlockInfo, nblocks)
blocks[j].Length = r.readUint32() for j := range blocks {
blocks[j].Hash = r.readBytes() blocks[j].Length = r.readUint32()
blocks[j].Hash = r.readBytes()
}
files[i].Blocks = blocks
} }
files[i].Blocks = blocks
} }
return files return files
} }