X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fcompress.c;h=6923753f894a0aac25755e5dedf6d478d70fa041;hb=4af7b60d428765c2d2c66c46f416f6dae55e9ddb;hp=52a4c100b338fd9d08936f742eb4427d97c68bd6;hpb=fa1c4b518ec7d8ec2d647213ee651cde4d6c9d7e;p=elogind.git diff --git a/src/journal/compress.c b/src/journal/compress.c index 52a4c100b..6923753f8 100644 --- a/src/journal/compress.c +++ b/src/journal/compress.c @@ -356,7 +356,7 @@ int compress_stream_xz(int fdf, int fdt, off_t max_bytes) { ret = lzma_easy_encoder(&s, LZMA_PRESET_DEFAULT, LZMA_CHECK_CRC64); if (ret != LZMA_OK) { - log_error("Failed to initialize XZ encoder: code %d", ret); + log_error("Failed to initialize XZ encoder: code %u", ret); return -EINVAL; } @@ -391,7 +391,7 @@ int compress_stream_xz(int fdf, int fdt, off_t max_bytes) { ret = lzma_code(&s, action); if (ret != LZMA_OK && ret != LZMA_STREAM_END) { - log_error("Compression failed: code %d", ret); + log_error("Compression failed: code %u", ret); return -EBADMSG; } @@ -400,12 +400,9 @@ int compress_stream_xz(int fdf, int fdt, off_t max_bytes) { n = sizeof(out) - s.avail_out; - errno = 0; k = loop_write(fdt, out, n, false); if (k < 0) return k; - if (k != n) - return errno ? -errno : -EIO; if (ret == LZMA_STREAM_END) { log_debug("XZ compression finished (%"PRIu64" -> %"PRIu64" bytes, %.1f%%)", @@ -460,10 +457,10 @@ int compress_stream_lz4(int fdf, int fdt, off_t max_bytes) { total_in += n; - r = LZ4_compress_limitedOutput_continue(&lz4_data, buf, out, n, n); + r = LZ4_compress_continue(&lz4_data, buf, out, n); if (r == 0) { - log_debug("Compressed size exceeds original, aborting compression."); - return -ENOBUFS; + log_error("LZ4 compression failed."); + return -EBADMSG; } header = htole32(r); @@ -478,8 +475,6 @@ int compress_stream_lz4(int fdf, int fdt, off_t max_bytes) { n = loop_write(fdt, out, r, false); if (n < 0) return n; - if (n != r) - return errno ? -errno : -EIO; total_out += sizeof(header) + r; @@ -517,7 +512,7 @@ int decompress_stream_xz(int fdf, int fdt, off_t max_bytes) { ret = lzma_stream_decoder(&s, UINT64_MAX, 0); if (ret != LZMA_OK) { - log_error("Failed to initialize XZ decoder: code %d", ret); + log_error("Failed to initialize XZ decoder: code %u", ret); return -ENOMEM; } @@ -543,7 +538,7 @@ int decompress_stream_xz(int fdf, int fdt, off_t max_bytes) { ret = lzma_code(&s, action); if (ret != LZMA_OK && ret != LZMA_STREAM_END) { - log_error("Decompression failed: code %d", ret); + log_error("Decompression failed: code %u", ret); return -EBADMSG; } @@ -559,12 +554,9 @@ int decompress_stream_xz(int fdf, int fdt, off_t max_bytes) { max_bytes -= n; } - errno = 0; k = loop_write(fdt, out, n, false); if (k < 0) return k; - if (k != n) - return errno ? -errno : -EIO; if (ret == LZMA_STREAM_END) { log_debug("XZ decompression finished (%"PRIu64" -> %"PRIu64" bytes, %.1f%%)", @@ -645,12 +637,9 @@ int decompress_stream_lz4(int fdf, int fdt, off_t max_bytes) { return -EFBIG; } - errno = 0; n = loop_write(fdt, out, r, false); if (n < 0) return n; - if (n != r) - return errno ? -errno : -EIO; } log_debug("LZ4 decompression finished (%zu -> %zu bytes, %.1f%%)",