1 /* SPDX-License-Identifier: LGPL-2.1+ */
6 #include "alloc-util.h"
8 #include "bus-message.h"
13 int LLVMFuzzerTestOneInput(const uint8_t *data
, size_t size
) {
14 _cleanup_free_
char *out
= NULL
; /* out should be freed after g */
16 _cleanup_fclose_
FILE *g
= NULL
;
17 _cleanup_(sd_bus_unrefp
) sd_bus
*bus
= NULL
;
18 _cleanup_(sd_bus_message_unrefp
) sd_bus_message
*m
= NULL
;
19 _cleanup_free_
void *buffer
= NULL
;
22 /* We don't want to fill the logs with messages about parse errors.
23 * Disable most logging if not running standalone */
24 if (!getenv("SYSTEMD_LOG_LEVEL"))
25 log_set_max_level(LOG_CRIT
);
30 assert_se(buffer
= memdup(data
, size
));
32 r
= bus_message_from_malloc(bus
, buffer
, size
, NULL
, 0, NULL
, &m
);
38 if (getenv_bool("SYSTEMD_FUZZ_OUTPUT") <= 0)
39 assert_se(g
= open_memstream(&out
, &out_size
));
41 bus_message_dump(m
, g
?: stdout
, BUS_MESSAGE_DUMP_WITH_HEADER
);
43 r
= sd_bus_message_rewind(m
, true);