manuf: Mask out broadcast flag

This commit is contained in:
João Valverde 2023-07-27 13:13:22 +01:00
parent 0ebe3bc0d4
commit b3e09c65d3
2 changed files with 10 additions and 9 deletions

View File

@ -1702,12 +1702,8 @@ manuf_name_lookup(const guint8 *addr)
}
/* Try the global manuf tables. */
uint8_t addr_copy[6];
memcpy(addr_copy, addr, 6);
/* Mask out the broadcast/multicast flag */
addr_copy[0] &= 0xFE;
struct ws_manuf manuf;
if (global_manuf_lookup(addr_copy, &manuf) != NULL) {
if (global_manuf_lookup(addr, &manuf) != NULL) {
/* Found it */
return manuf_hash_new_entry(addr, manuf.short_name, manuf.long_name);
}

View File

@ -98,15 +98,20 @@ global_manuf_lookup(const uint8_t addr[6], struct ws_manuf *result)
{
memset(result, 0, sizeof(*result));
switch (select_registry(addr)) {
uint8_t addr_copy[6];
memcpy(addr_copy, addr, 6);
/* Mask out the broadcast/multicast flag */
addr_copy[0] &= 0xFE;
switch (select_registry(addr_copy)) {
case MA_L:
return manuf_oui24_lookup(addr, result);
return manuf_oui24_lookup(addr_copy, result);
break;
case MA_M:
return manuf_oui28_lookup(addr, result);
return manuf_oui28_lookup(addr_copy, result);
break;
case MA_S:
return manuf_oui36_lookup(addr, result);
return manuf_oui36_lookup(addr_copy, result);
break;
default:
break;