X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournal-file.c;h=986e94de392ac12011c27e16352e79638a79a2b1;hb=54cba0b16cdc94d5c21e8d805a4ade1255d43bc9;hp=b6de502da8a7e2a36fa8d0e06ce7cfcf52ba2109;hpb=d89c8fdf48c7bad5816b9f2e77e8361721f22517;p=elogind.git diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index b6de502da..986e94de3 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -279,12 +279,6 @@ static int journal_file_verify_header(JournalFile *f) { !VALID64(le64toh(f->header->entry_array_offset))) return -ENODATA; - if (le64toh(f->header->data_hash_table_offset) < le64toh(f->header->header_size) || - le64toh(f->header->field_hash_table_offset) < le64toh(f->header->header_size) || - le64toh(f->header->tail_object_offset) < le64toh(f->header->header_size) || - le64toh(f->header->entry_array_offset) < le64toh(f->header->header_size)) - return -ENODATA; - if (f->writable) { uint8_t state; sd_id128_t machine_id; @@ -819,7 +813,9 @@ int journal_file_find_data_object_with_hash( goto next; if (o->object.flags & OBJECT_COMPRESSION_MASK) { - uint64_t l, rsize; +#if defined(HAVE_XZ) || defined(HAVE_LZ4) + uint64_t l; + size_t rsize; l = le64toh(o->object.size); if (l <= offsetof(Object, data.payload)) @@ -843,7 +839,9 @@ int journal_file_find_data_object_with_hash( return 1; } - +#else + return -EPROTONOSUPPORT; +#endif } else if (le64toh(o->object.size) == osize && memcmp(o->data.payload, data, size) == 0) { @@ -982,7 +980,7 @@ static int journal_file_append_data( #if defined(HAVE_XZ) || defined(HAVE_LZ4) if (f->compress_xz && size >= COMPRESSION_SIZE_THRESHOLD) { - uint64_t rsize; + size_t rsize; compression = compress_blob(data, size, o->data.payload, &rsize); @@ -990,7 +988,7 @@ static int journal_file_append_data( o->object.size = htole64(offsetof(Object, data.payload) + rsize); o->object.flags |= compression; - log_debug("Compressed data object %"PRIu64" -> %"PRIu64" using %s", + log_debug("Compressed data object %"PRIu64" -> %zu using %s", size, rsize, object_compressed_to_string(compression)); } } @@ -2476,7 +2474,7 @@ int journal_file_open( f->flags = flags; f->prot = prot_from_flags(flags); f->writable = (flags & O_ACCMODE) != O_RDONLY; -#if defined(HAVE_LZ) +#if defined(HAVE_LZ4) f->compress_lz4 = compress; #elif defined(HAVE_XZ) f->compress_xz = compress; @@ -2772,7 +2770,8 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 return -E2BIG; if (o->object.flags & OBJECT_COMPRESSION_MASK) { - uint64_t rsize; +#if defined(HAVE_XZ) || defined(HAVE_LZ4) + size_t rsize; r = decompress_blob(o->object.flags & OBJECT_COMPRESSION_MASK, o->data.payload, l, &from->compress_buffer, &from->compress_buffer_size, &rsize, 0); @@ -2781,6 +2780,9 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 data = from->compress_buffer; l = rsize; +#else + return -EPROTONOSUPPORT; +#endif } else data = o->data.payload;