mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
net: disallow to specify multicast MAC address
[Assigning a multicast MAC address to a NIC leads to confusing behavior. Reject multicast MAC addresses so users are alerted to their error straight away. The "net/eth.h" in6_addr rename prevents a name collision with <netinet/in.h> on Linux. -- Stefan] Signed-off-by: Dmitry V. Krivenok <krivenok.dmitry@gmail.com> Reviewed-by: Amos Kong <kongjianjun@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
964668b03d
commit
d60b20cf2a
2 changed files with 9 additions and 3 deletions
|
@ -27,6 +27,7 @@
|
|||
#include "clients.h"
|
||||
#include "hub.h"
|
||||
#include "net/slirp.h"
|
||||
#include "net/eth.h"
|
||||
#include "util.h"
|
||||
|
||||
#include "monitor/monitor.h"
|
||||
|
@ -689,6 +690,11 @@ static int net_init_nic(const NetClientOptions *opts, const char *name,
|
|||
error_report("invalid syntax for ethernet address");
|
||||
return -1;
|
||||
}
|
||||
if (nic->has_macaddr &&
|
||||
is_multicast_ether_addr(nd->macaddr.a)) {
|
||||
error_report("NIC cannot have multicast MAC address (odd 1st byte)");
|
||||
return -1;
|
||||
}
|
||||
qemu_macaddr_default_if_unset(&nd->macaddr);
|
||||
|
||||
if (nic->has_vectors) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue