[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#686502: pxz produces archives broken for busybox's unxz



Abou Al Montacir wrote:

> +--- busybox-1.20.0~/archival/libarchive/decompress_unxz.c	2012-12-20 21:51:04.000000000 +0100
> ++++ busybox-1.20.0/archival/libarchive/decompress_unxz.c	2012-12-20 21:49:11.000000000 +0100
> +@@ -87,7 +87,17 @@ unpack_xz_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
> + 			iobuf.out_pos = 0;
> + 		}
> + 		if (r == XZ_STREAM_END) {
> +-			break;
> ++			if (iobuf.in_pos != iobuf.in_size) {
[...]
> ++			}
> ++			// Look for other streams
> ++			continue;

What happens if a stream ends at a buffer boundary, followed by
padding?  Or if padding doesn't fit in the buffer, for that
matter?

Hope that helps,
Jonathan


Reply to: