From: Lennart Poettering Date: Wed, 5 May 2021 08:45:48 +0000 (+0200) Subject: user-record: optionally, allow parsing empty user record JSON objects X-Git-Tag: v249-rc1~193^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1a298a206c5dfe03c6cc9e690e1a81719c25c20c;p=thirdparty%2Fsystemd.git user-record: optionally, allow parsing empty user record JSON objects --- diff --git a/src/shared/user-record.c b/src/shared/user-record.c index bc35edd7292..d82b4d36361 100644 --- a/src/shared/user-record.c +++ b/src/shared/user-record.c @@ -1552,7 +1552,7 @@ int user_group_record_mangle( if (FLAGS_SET(load_flags, USER_RECORD_REQUIRE_REGULAR) && !FLAGS_SET(m, USER_RECORD_REGULAR)) return json_log(v, json_flags, SYNTHETIC_ERRNO(EBADMSG), "Record lacks basic identity fields, which are required."); - if (m == 0) + if (!FLAGS_SET(load_flags, USER_RECORD_EMPTY_OK) && m == 0) return json_log(v, json_flags, SYNTHETIC_ERRNO(EBADMSG), "Record is empty."); if (w) diff --git a/src/shared/user-record.h b/src/shared/user-record.h index 623f7bc9e45..66dceecfddd 100644 --- a/src/shared/user-record.h +++ b/src/shared/user-record.h @@ -169,6 +169,9 @@ typedef enum UserRecordLoadFlags { /* Whether to ignore errors and load what we can */ USER_RECORD_PERMISSIVE = 1U << 29, + + /* Whether an empty record is OK */ + USER_RECORD_EMPTY_OK = 1U << 30, } UserRecordLoadFlags; static inline UserRecordLoadFlags USER_RECORD_REQUIRE(UserRecordMask m) {