Explorar o código

Check for unused data when decoding

Evan Huus %!s(int64=13) %!d(string=hai) anos
pai
achega
8dca559f10
Modificáronse 1 ficheiros con 10 adicións e 1 borrados
  1. 10 1
      protocol/encoder_decoder.go

+ 10 - 1
protocol/encoder_decoder.go

@@ -37,5 +37,14 @@ func decode(buf []byte, in decoder) error {
 	}
 
 	helper := realDecoder{raw: buf}
-	return in.decode(&helper)
+	err := in.decode(&helper)
+	if err != nil {
+		return err
+	}
+
+	if helper.off != len(buf) {
+		return DecodingError("unused data")
+	}
+
+	return nil
 }