1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
5 #include "alloc-util.h"
8 #include "manager-serialize.h"
12 int LLVMFuzzerTestOneInput(const uint8_t *data
, size_t size
) {
13 _cleanup_(manager_freep
) Manager
*m
= NULL
;
14 _cleanup_fclose_
FILE *f
= NULL
, *null
= NULL
;
15 _cleanup_fdset_free_ FDSet
*fdset
= NULL
;
17 if (outside_size_range(size
, 0, 65536))
20 /* We don't want to fill the logs with messages about parse errors.
21 * Disable most logging if not running standalone. */
22 if (!getenv("SYSTEMD_LOG_LEVEL")) {
23 log_set_max_level(LOG_CRIT
);
24 log_set_target(LOG_TARGET_NULL
);
27 assert_se(manager_new(RUNTIME_SCOPE_SYSTEM
, MANAGER_TEST_RUN_MINIMAL
, &m
) >= 0);
28 /* Set log overrides as well to make it harder for a serialization file
29 * to switch log levels/targets during fuzzing */
30 manager_override_log_level(m
, log_get_max_level());
31 manager_override_log_target(m
, log_get_target());
32 assert_se(null
= fopen("/dev/null", "we"));
33 assert_se(fdset
= fdset_new());
34 assert_se(f
= data_to_file(data
, size
));
36 (void) manager_deserialize(m
, f
, fdset
);
37 (void) manager_serialize(m
, null
, fdset
, true);
38 (void) manager_serialize(m
, null
, fdset
, false);