diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c index 55191849d8c..3d9dab7e3c1 100644 --- a/src/network/networkd-dhcp-common.c +++ b/src/network/networkd-dhcp-common.c @@ -499,7 +499,7 @@ int config_parse_dhcp_send_option( r = extract_first_word(&p, &word, ":", 0); if (r == -ENOMEM) return log_oom(); - if (r <= 0) { + if (r <= 0 || isempty(p)) { log_syntax(unit, LOG_ERR, filename, line, r, "Invalid DHCP option, ignoring assignment: %s", rvalue); return 0; diff --git a/test/fuzz/fuzz-network-parser/github-15885 b/test/fuzz/fuzz-network-parser/github-15885 new file mode 100644 index 00000000000..9bbdcb29e6c --- /dev/null +++ b/test/fuzz/fuzz-network-parser/github-15885 @@ -0,0 +1,9 @@ +[DHCPv4] +SendOption=1:string: +SendOption=1:uint8: +SendOption=1:uint16: +SendOption=1:uint32: +SendOption=1:ipv4address: +SendOption=1:ipv4address:127.0.0.1 +SendOption=1:ipv6address: +SendOption=1:ipv6address:52:54:00:b9:b5:61