chiark / gitweb /
Remove src/bootchart
[elogind.git] / src / journal / compress.c
index c4c715be2f5ad9d254efc3be27418dee65ae1056..383f6a6e9665b84ac280b9d3c57e8f0f847c4f70 100644 (file)
@@ -19,7 +19,6 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
-#include <assert.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -356,7 +355,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 +390,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 +399,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%%)",
@@ -478,8 +474,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 +511,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 +537,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 +553,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%%)",
@@ -598,14 +589,12 @@ int decompress_stream_lz4(int fdf, int fdt, off_t max_bytes) {
                 return log_oom();
 
         for (;;) {
-                ssize_t n, m;
+                ssize_t m;
                 int r;
 
-                n = read(fdf, &header, sizeof(header));
-                if (n < 0)
-                        return -errno;
-                if (n != sizeof(header))
-                        return errno ? -errno : -EIO;
+                r = loop_read_exact(fdf, &header, sizeof(header), false);
+                if (r < 0)
+                        return r;
 
                 m = le32toh(header);
                 if (m == 0)
@@ -627,12 +616,9 @@ int decompress_stream_lz4(int fdf, int fdt, off_t max_bytes) {
                 if (!GREEDY_REALLOC(buf, buf_size, m))
                         return log_oom();
 
-                errno = 0;
-                n = loop_read(fdf, buf, m, false);
-                if (n < 0)
-                        return n;
-                if (n != m)
-                        return errno ? -errno : -EIO;
+                r = loop_read_exact(fdf, buf, m, false);
+                if (r < 0)
+                        return r;
 
                 r = LZ4_decompress_safe_continue(&lz4_data, buf, out, m, 4*LZ4_BUFSIZE);
                 if (r <= 0)
@@ -645,12 +631,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;
+                r = loop_write(fdt, out, r, false);
+                if (r < 0)
+                        return r;
         }
 
         log_debug("LZ4 decompression finished (%zu -> %zu bytes, %.1f%%)",