diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c index 54cd568e7c2f..bf14ccf7fd95 100644 --- a/net/core/dev_addr_lists.c +++ b/net/core/dev_addr_lists.c @@ -116,7 +116,8 @@ static int __hw_addr_del_ex(struct netdev_hw_addr_list *list, struct netdev_hw_addr *ha; list_for_each_entry(ha, &list->list, list) { - if (!memcmp(ha->addr, addr, addr_len) && + if ((addr_len != (sizeof(ha->addr)/sizeof(unsigned char))) && + (!memcmp(ha->addr, addr, addr_len)) && (ha->type == addr_type || !addr_type)) return __hw_addr_del_entry(list, ha, global, sync); }