fuzz-unit-file: simply do not test ListenNetlink= at all
msan doesn't understand sscanf with %ms, so it falsely reports unitialized memory. Using sscanf with %ms is quite convenient in socket_address_parse_netlink(), so let's just not run the fuzzer for ListenNetlink= at all for now. If msan is fixed, we can remove this. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6884
This commit is contained in:
@@ -18,6 +18,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
_cleanup_(manager_freep) Manager *m = NULL;
|
||||
Unit *u;
|
||||
const char *name;
|
||||
long offset;
|
||||
|
||||
if (size == 0)
|
||||
return 0;
|
||||
@@ -35,6 +36,23 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
if (!unit_vtable[t]->load)
|
||||
return 0;
|
||||
|
||||
offset = ftell(f);
|
||||
assert_se(offset >= 0);
|
||||
|
||||
for (;;) {
|
||||
_cleanup_free_ char *l = NULL;
|
||||
|
||||
if (read_line(f, LINE_MAX, &l) <= 0)
|
||||
break;
|
||||
|
||||
if (startswith(l, "ListenNetlink="))
|
||||
/* ListenNetlink causes a false positive in msan,
|
||||
* let's skip this for now. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
assert_se(fseek(f, offset, SEEK_SET) == 0);
|
||||
|
||||
/* We don't want to fill the logs with messages about parse errors.
|
||||
* Disable most logging if not running standalone */
|
||||
if (!getenv("SYSTEMD_LOG_LEVEL"))
|
||||
|
||||
@@ -124,7 +124,7 @@ LazyUnmount=
|
||||
ListenDatagram=
|
||||
ListenFIFO=
|
||||
ListenMessageQueue=
|
||||
ListenNetlink=
|
||||
#ListenNetlink=
|
||||
ListenSequentialPacket=
|
||||
ListenSpecial=
|
||||
ListenStream=
|
||||
|
||||
@@ -53,7 +53,7 @@ ListenDatagram=1.2.3.4:1234
|
||||
ListenSequentialPacket=1.2.3.4:1234
|
||||
ListenFIFO=
|
||||
ListenSpecial=
|
||||
ListenNetlink=
|
||||
#ListenNetlink=
|
||||
ListenMessageQueue=
|
||||
ListenUSBFunction=
|
||||
SocketProtocol=udplite
|
||||
|
||||
Reference in New Issue
Block a user