From 06da07a58481d778ac931d75c588cd97ab0f6840 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 29 Nov 2014 17:12:08 -0500 Subject: [PATCH] NewValueFromBytes panics on some bad input --- ethutil/value_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ethutil/value_test.go b/ethutil/value_test.go index 861d35184f..81df3752fb 100644 --- a/ethutil/value_test.go +++ b/ethutil/value_test.go @@ -68,3 +68,17 @@ func (s *ValueSuite) TestString(c *checker.C) { exp := int64(10) c.Assert(NewValue(data).Int(), checker.DeepEquals, exp) } + +func (s *ValueSuite) TestAdversary(c *checker.C) { + badRlp := []string{ + "10fa5", + "10fa56a89200b3c", + "f971808813c16d60fa56a89200b3c8f3421aaa3626c711a1bed1c", + "f971808813c16d67555ec800881bc16d674ec8000094bbbd0256041f7aed3ce278c56ee61492de96d0018401312d008061a06162636465666768696a6b6c6d6e6f707172737475767778797a616263646566a06162636465666768696a6b6c6d6e6f707172737475767778797a6162636465", + "f971808813c16d67555ec800881bc16d674ec8110094bbbd3256041f7aed3ce278c59ee62492de06d001832401312d008061a06162636465666768696a6b6c6d6e6f7071727475ab767778797a616263646566a06162636465666768696a6b6c6d6e6f7071", + } + // simply looking for input that panics + for _, v := range badRlp { + NewValueFromBytes(Hex2Bytes(v)) + } +}