Having a CPIO archive in (e.g. UTF-8) mode and having a name entry with a name containing multi-byte characters the decoder fails.
The problem IMHO is the "getHeaderPadCount" method, which assumes a single byte per character:
However this may (or may not) be true for UTF-8.
Also it wouldn't be enough to call "String#getBytes(…)" as this might already transform the underlying bytes.
The proper solution would be to provide the name size, as read from the CPIO stream, and pass it to the entry.