From 1a298a206c5dfe03c6cc9e690e1a81719c25c20c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 5 May 2021 10:45:48 +0200 Subject: [PATCH] user-record: optionally, allow parsing empty user record JSON objects --- src/shared/user-record.c | 2 +- src/shared/user-record.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) 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) { -- 2.47.3