The zip archiver handed out its cached directory tree directly. Any caller which filters a listing in place (as the core listing code does) altered the cache, so later listings of the same directory could be corrupted. Return a copy of the cached listing instead.