Index: libmpdemux/ebml.c =================================================================== --- libmpdemux/ebml.c (revision 32033) +++ libmpdemux/ebml.c (working copy) @@ -136,7 +136,7 @@ int l; len = ebml_read_length(s, &l); - if (len == EBML_UINT_INVALID || len < 1 || len > 8) + if (len == EBML_UINT_INVALID || len > 8) return EBML_UINT_INVALID; if (length) *length = len + l; @@ -157,11 +157,14 @@ int l; len = ebml_read_length(s, &l); - if (len == EBML_UINT_INVALID || len < 1 || len > 8) + if (len == EBML_UINT_INVALID || len > 8) return EBML_INT_INVALID; if (length) *length = len + l; + if (len == 0) + return 0; + len--; l = stream_read_char(s); if (l & 0x80)