Bug#686502: pxz produces archives broken for busybox's unxz
On Thu, Dec 27, 2012 at 10:08:07PM +0100, Abou Al Montacir wrote:
> + if (r == XZ_STREAM_END) {
> + /* Eat padding. Stream never starts with zeros, and padding is 32 aligned */
> + while ((iobuf.in_pos < iobuf.in_size) && (iobuf.in[iobuf.in_pos] == 0)) {
> + iobuf.in_pos += 1;
> + }
> + /* Reached end of buffer. Fill it again from stream */
> + if (iobuf.in_pos == iobuf.in_size) {
> + continue;
> + }
> + if(iobuf.in_pos % 4){
Are you sure this is correct? in_pos is the position in tht buffer, not
the file. Also look out for coding style.
> + if (r == XZ_STREAM_END) {
Again the same check?
> if (r == XZ_STREAM_END) {
> - break;
> + xz_dec_end(state);
> + /* Look for any other streams */
> + continue;
Why do you have three XZ_STREAM_END checks in this state machine?
Bastian
--
There are always alternatives.
-- Spock, "The Galileo Seven", stardate 2822.3
Reply to: