X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fsd-journal.c;h=779af62b518bff9eb6831a1c64233dcb2b00c01d;hb=39887731d4a36292674f92effa30e5941419c201;hp=88777cbcb967a481219c6ee43c12f9ff044c478d;hpb=c4073a27c555aeceac87a3b02a83141cde641a1e;p=elogind.git diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 88777cbcb..779af62b5 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -109,6 +109,9 @@ static void set_location(sd_journal *j, LocationType type, JournalFile *f, Objec init_location(&j->current_location, type, f, o); + if (j->current_file) + j->current_file->current_offset = 0; + j->current_file = f; j->current_field = 0; @@ -412,7 +415,7 @@ _public_ void sd_journal_flush_matches(sd_journal *j) { } static int compare_entry_order(JournalFile *af, Object *_ao, - JournalFile *bf, uint64_t bp) { + JournalFile *bf, uint64_t bp) { uint64_t a, b; Object *ao, *bo; @@ -495,7 +498,7 @@ static int compare_entry_order(JournalFile *af, Object *_ao, return 0; } -static int compare_with_location(JournalFile *af, Object *ao, Location *l) { +_pure_ static int compare_with_location(JournalFile *af, Object *ao, Location *l) { uint64_t a; assert(af); @@ -1248,15 +1251,15 @@ static void check_network(sd_journal *j, int fd) { return; j->on_network = - (unsigned __SWORD_TYPE) sfs.f_type == CIFS_MAGIC_NUMBER || - (unsigned __SWORD_TYPE) sfs.f_type == CODA_SUPER_MAGIC || - (unsigned __SWORD_TYPE) sfs.f_type == NCP_SUPER_MAGIC || - (unsigned __SWORD_TYPE) sfs.f_type == NFS_SUPER_MAGIC || - (unsigned __SWORD_TYPE) sfs.f_type == SMB_SUPER_MAGIC; + F_TYPE_CMP(sfs.f_type, CIFS_MAGIC_NUMBER) || + F_TYPE_CMP(sfs.f_type, CODA_SUPER_MAGIC) || + F_TYPE_CMP(sfs.f_type, NCP_SUPER_MAGIC) || + F_TYPE_CMP(sfs.f_type, NFS_SUPER_MAGIC) || + F_TYPE_CMP(sfs.f_type, SMB_SUPER_MAGIC); } static int add_file(sd_journal *j, const char *prefix, const char *filename) { - char _cleanup_free_ *path = NULL; + _cleanup_free_ char *path = NULL; int r; JournalFile *f; @@ -1347,9 +1350,9 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) } static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { - char _cleanup_free_ *path = NULL; + _cleanup_free_ char *path = NULL; int r; - DIR _cleanup_closedir_ *d = NULL; + _cleanup_closedir_ DIR *d = NULL; sd_id128_t id, mid; Directory *m; @@ -1437,7 +1440,7 @@ static int add_directory(sd_journal *j, const char *prefix, const char *dirname) } static int add_root_directory(sd_journal *j, const char *p) { - DIR _cleanup_closedir_ *d = NULL; + _cleanup_closedir_ DIR *d = NULL; Directory *m; int r; @@ -2214,6 +2217,8 @@ _public_ int sd_journal_get_cutoff_realtime_usec(sd_journal *j, uint64_t *from, return -EINVAL; if (!from && !to) return -EINVAL; + if (from == to) + return -EINVAL; HASHMAP_FOREACH(f, j->files, i) { usec_t fr, t; @@ -2253,6 +2258,8 @@ _public_ int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, sd_id128_t boot return -EINVAL; if (!from && !to) return -EINVAL; + if (from == to) + return -EINVAL; HASHMAP_FOREACH(f, j->files, i) { usec_t fr, t;