Apparently libarchive has a limitation of reading zip and 7z archive contents if it does so by using "archive_read_open_fd". It can be easily checked with:
bsdtar tvf <archive> vs cat <archive> | bsdtar tvf - First works, second either fails with 'bsdtar: Error seeking in stdin' (7z), or erroneously assumes that all files in the archive are empty (zip). Attached patch workarounds the problem by using archive_read_open_filename instead, which solves the issue for me. Reco
--- archivemount-0.8.7.orig/archivemount.c +++ archivemount-0.8.7/archivemount.c @@ -450,7 +450,7 @@ build_tree( const char *mtpt ) return archive_errno( archive ); } } - if( archive_read_open_fd( archive, archiveFd, 10240 ) != ARCHIVE_OK ) { + if ( archive_read_open_filename( archive, archiveFile, 512) != ARCHIVE_OK ) { fprintf( stderr, "%s\n", archive_error_string( archive ) ); return archive_errno( archive ); }