From 2c06fbb8513dc7b1bbd42702e29c77f5d9393b14 Mon Sep 17 00:00:00 2001 From: Thomas Rudin <thomas@rudin.io> Date: Fri, 1 Mar 2019 06:01:10 +0100 Subject: [PATCH] don't panic --- server/mapblockparser/metadata.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/mapblockparser/metadata.go b/server/mapblockparser/metadata.go index e16b73c..62abcc0 100644 --- a/server/mapblockparser/metadata.go +++ b/server/mapblockparser/metadata.go @@ -5,10 +5,11 @@ import ( "bytes" "compress/zlib" "errors" - "github.com/sirupsen/logrus" "io" "strconv" "strings" + + "github.com/sirupsen/logrus" ) /* @@ -95,6 +96,11 @@ func parseMetadata(mapblock *MapBlock, data []byte) (int, error) { valueLength := readU32(metadata, offset) offset += 4 + if len(metadata) <= valueLength+offset { + return 0, errors.New("metadata too short: " + strconv.Itoa(len(metadata)) + + ", valuelength: " + strconv.Itoa(int(valueLength))) + } + value := string(metadata[offset : valueLength+offset]) offset += valueLength