neigh: Remove check for AF_UNSPEC in rtnl_neigh_get()
This check was introduces to not accidently return AF_BRIDGE objects to unaware API users as they do differ in structure. However, such objects are only available if explicitely requests using the NL_CACHE_AF_ITER flag or by using arg1 == AF_BRIDGE for the cache. Therefore remove this check and allow rtnl_neigh_get() to be used to fetch any neighbor object of a cache. Reported-by: Maxime Bizon <mbizon@freebox.fr> Signed-off-by: Thomas Graf <tgraf@suug.ch>
This commit is contained in:
parent
2005c2ecac
commit
8571f58f23
1 changed files with 2 additions and 2 deletions
|
@ -532,6 +532,7 @@ int rtnl_neigh_alloc_cache(struct nl_sock *sock, struct nl_cache **result)
|
|||
* @arg cache neighbour cache
|
||||
* @arg ifindex interface index the neighbour is on
|
||||
* @arg dst destination address of the neighbour
|
||||
*
|
||||
* @return neighbour handle or NULL if no match was found.
|
||||
*/
|
||||
struct rtnl_neigh * rtnl_neigh_get(struct nl_cache *cache, int ifindex,
|
||||
|
@ -540,8 +541,7 @@ struct rtnl_neigh * rtnl_neigh_get(struct nl_cache *cache, int ifindex,
|
|||
struct rtnl_neigh *neigh;
|
||||
|
||||
nl_list_for_each_entry(neigh, &cache->c_items, ce_list) {
|
||||
if (neigh->n_family == AF_UNSPEC &&
|
||||
neigh->n_ifindex == ifindex &&
|
||||
if (neigh->n_ifindex == ifindex &&
|
||||
!nl_addr_cmp(neigh->n_dst, dst)) {
|
||||
nl_object_get((struct nl_object *) neigh);
|
||||
return neigh;
|
||||
|
|
Loading…
Add table
Reference in a new issue