It works! Thank you very much. Ken
Denys Vlasenko <[email protected]> 於 2019年10月11日 週五 下午8:14寫道: > On Sun, Sep 29, 2019 at 6:38 AM Ken CJ Chou <[email protected]> wrote: > > > > > > Hello, > > > > I'm using the latest version of busybox (1.31.0). > > I found an issue when using "dpkg" and "dpkg-deb" in busybox. > > When I performed some task to get the control info of a ".deb" file. > > The output showed a "dpkg-deb: corrupted data" message. > > > > e.g. > > ``` > > # dpkg-deb -f <some_deb_file> > > Package: <some_package> > > ... > > dpkg-deb: corrupted data > > ``` > > > > I looked into the source code. > > In file "archival/libarchive/decompress_unxz.c" line 97, here busybox > tried to decompress another xz stream when it found that the input stream > isn't ended. > > > > So the issue happens on newer Debian package files. > > Newer Debian package files format is an "ar" archive of 3 files > including "debian-binary", "control.tar.xz", "data.tar.xz" in orders. > > When performing tasks on the Debian package file, the archive handler > open the ".deb" file as the input stream. > > When busybox complete reading the section of "control.tar.xz", it > automatically tried to decompress another xz stream because there is still > the section of "data.tar.xz" in the input stream. > > In this situation, busybox will read the label of "ar" archive for > "data.tar.xz" section. Then it fails at checking xz's header magic. And > finally a "corrupted data" error message is printed. > > Good analysis. > > I added a work-around, please try current git. >
_______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
