Fix tag parse with no padding

develop
Michael Yang 2014-01-05 17:04:20 -05:00
rodzic e7b3df3f87
commit afb56fce94
1 zmienionych plików z 7 dodań i 3 usunięć

Wyświetl plik

@ -69,9 +69,13 @@ func ParseTag(reader io.Reader) *Tag {
}
t.padding = uint(size)
nAdvance := int(t.padding) - t.frameHeaderSize
if n, err := io.ReadFull(reader, make([]byte, nAdvance)); n != nAdvance || err != nil {
return nil
if int(t.padding) > t.frameHeaderSize {
// Psuedo-unread bytes for last attempted frame
nAdvance := int(t.padding) - t.frameHeaderSize
if n, err := io.ReadFull(reader, make([]byte, nAdvance)); n != nAdvance || err != nil {
return nil
}
}
return t