X-Git-Url: http://www.git.cypherpunks.ru/?p=netstring.git;a=blobdiff_plain;f=r.go;fp=r.go;h=9b8f51069e541d86986497e383dec57349f563b8;hp=0c65fd41d01d5039c2b9a3e36bbf9cb6e6b3f892;hb=8077b5bcd6f6d5d0b7b66a902ca28ce2bab66086;hpb=db1063cacc062476c517de92da16720aa574ed19 diff --git a/r.go b/r.go index 0c65fd4..9b8f510 100644 --- a/r.go +++ b/r.go @@ -48,7 +48,11 @@ func (r *Reader) Next() (uint64, error) { 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) }