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:
Zbigniew Jędrzejewski-Szmek
2018-03-18 21:05:43 +01:00
parent 5685efde88
commit bd0763b642
3 changed files with 20 additions and 2 deletions
+18
View File
@@ -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=
+1 -1
View File
@@ -53,7 +53,7 @@ ListenDatagram=1.2.3.4:1234
ListenSequentialPacket=1.2.3.4:1234
ListenFIFO=
ListenSpecial=
ListenNetlink=
#ListenNetlink=
ListenMessageQueue=
ListenUSBFunction=
SocketProtocol=udplite