From: Yu Watanabe Date: Mon, 1 May 2023 03:54:15 +0000 (+0900) Subject: sd-journal: check validity of object type more strictly X-Git-Tag: v254-rc1~586^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b72fd2af867475a43c17cfe3c89963692f753189;p=thirdparty%2Fsystemd.git sd-journal: check validity of object type more strictly Otherwise, the object with invalid type may pass check_object_header() when the requested type is OBJECT_UNUSED. --- diff --git a/src/libsystemd/sd-journal/journal-file.c b/src/libsystemd/sd-journal/journal-file.c index 1ef75595377..81bedfd7221 100644 --- a/src/libsystemd/sd-journal/journal-file.c +++ b/src/libsystemd/sd-journal/journal-file.c @@ -791,10 +791,10 @@ static int check_object_header(JournalFile *f, Object *o, ObjectType type, uint6 "Attempt to move to overly short object with size %"PRIu64": %" PRIu64, s, offset); - if (o->object.type <= OBJECT_UNUSED) + if (o->object.type <= OBJECT_UNUSED || o->object.type >= _OBJECT_TYPE_MAX) return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), - "Attempt to move to object with invalid type: %" PRIu64, - offset); + "Attempt to move to object with invalid type (%u): %" PRIu64, + o->object.type, offset); if (type > OBJECT_UNUSED && o->object.type != type) return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG),