From: Lasse Collin Date: Mon, 20 Jul 2009 12:43:32 +0000 (+0300) Subject: Avoid internal error with --format=xz --lzma1. X-Git-Tag: upstream/5.1.3~482 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f8ec942d6d21ada2096eaf063411bc8bc7e2d48;p=platform%2Fupstream%2Fxz.git Avoid internal error with --format=xz --lzma1. --- diff --git a/src/xz/coder.c b/src/xz/coder.c index 90c9927..7cf6186 100644 --- a/src/xz/coder.c +++ b/src/xz/coder.c @@ -151,12 +151,20 @@ coder_set_compression_settings(void) // Terminate the filter options array. filters[filters_count].id = LZMA_VLI_UNKNOWN; - // If we are using the LZMA_Alone format, allow exactly one filter - // which has to be LZMA. + // If we are using the .lzma format, allow exactly one filter + // which has to be LZMA1. if (opt_format == FORMAT_LZMA && (filters_count != 1 || filters[0].id != LZMA_FILTER_LZMA1)) - message_fatal(_("With --format=lzma only the LZMA1 filter " - "is supported")); + message_fatal(_("The .lzma format supports only " + "the LZMA1 filter")); + + // If we are using the .xz format, make sure that there is no LZMA1 + // filter to prevent LZMA_PROG_ERROR. + if (opt_format == FORMAT_XZ) + for (size_t i = 0; i < filters_count; ++i) + if (filters[i].id == LZMA_FILTER_LZMA1) + message_fatal(_("LZMA1 cannot be used " + "with the .xz format")); // Print the selected filter chain. message_filters(V_DEBUG, filters);