if _, err := r.Read(data); err == nil {
t.FailNow()
}
+
+ b = bytes.NewBufferString(":foobar,")
+ r = NewReader(b)
+ if _, err := r.Next(); err == nil {
+ t.FailNow()
+ }
+
+ b = bytes.NewBufferString("06:foobar,")
+ r = NewReader(b)
+ if _, err := r.Next(); err == nil {
+ t.FailNow()
+ }
}
func TestExample(t *testing.T) {
if err != nil {
return 0, fmt.Errorf("netstring header: %w", err)
}
- size, err := strconv.ParseUint(string(lenRaw[:len(lenRaw)-1]), 10, 64)
+ lenRaw = lenRaw[:len(lenRaw)-1]
+ if len(lenRaw) > 1 && lenRaw[0] == '0' {
+ return 0, errors.New("netstring header: leading zero")
+ }
+ size, err := strconv.ParseUint(string(lenRaw), 10, 64)
if err != nil {
return 0, fmt.Errorf("netstring header: %w", err)
}