network: check MulticastGroupAddress= is neither a local multicast address nor all nodes address
This commit is contained in:
parent
ccea244865
commit
03ae449015
|
@ -239,9 +239,30 @@ int mdb_entry_verify(MdbEntry *mdb_entry) {
|
||||||
if (section_is_invalid(mdb_entry->section))
|
if (section_is_invalid(mdb_entry->section))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (in_addr_is_multicast(mdb_entry->family, &mdb_entry->group_addr) <= 0) {
|
if (mdb_entry->family == AF_UNSPEC)
|
||||||
log_error("No valid MulticastGroupAddress= assignment in this section");
|
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||||
return -EINVAL;
|
"%s: [BridgeMDB] section without MulticastGroupAddress= field configured. "
|
||||||
|
"Ignoring [BridgeMDB] section from line %u.",
|
||||||
|
mdb_entry->section->filename, mdb_entry->section->line);
|
||||||
|
|
||||||
|
if (!in_addr_is_multicast(mdb_entry->family, &mdb_entry->group_addr))
|
||||||
|
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||||
|
"%s: MulticastGroupAddress= is not a multicast address. "
|
||||||
|
"Ignoring [BridgeMDB] section from line %u.",
|
||||||
|
mdb_entry->section->filename, mdb_entry->section->line);
|
||||||
|
|
||||||
|
if (mdb_entry->family == AF_INET) {
|
||||||
|
if (in4_addr_is_local_multicast(&mdb_entry->group_addr.in))
|
||||||
|
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||||
|
"%s: MulticastGroupAddress= is a local multicast address. "
|
||||||
|
"Ignoring [BridgeMDB] section from line %u.",
|
||||||
|
mdb_entry->section->filename, mdb_entry->section->line);
|
||||||
|
} else {
|
||||||
|
if (in6_addr_is_link_local_all_nodes(&mdb_entry->group_addr.in6))
|
||||||
|
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||||
|
"%s: MulticastGroupAddress= is the multicast all nodes address. "
|
||||||
|
"Ignoring [BridgeMDB] section from line %u.",
|
||||||
|
mdb_entry->section->filename, mdb_entry->section->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue