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

Reply via email to