From 817464aa9c879ed8d24286a6dac2df060a345b62 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 4 Nov 2016 19:02:46 +0100 Subject: socket: route() returns an error pointer, not NULL on failure Reported-by: Cedric Buxin --- src/socket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/socket.c') diff --git a/src/socket.c b/src/socket.c index 4ae767d..2d2cf45 100644 --- a/src/socket.c +++ b/src/socket.c @@ -182,10 +182,10 @@ int socket_send_skb_to_peer(struct wireguard_peer *peer, struct sk_buff *skb, u8 read_lock_bh(&peer->endpoint_lock); dst = route(peer->device, &fl, &peer->endpoint_addr, rcu_dereference(peer->device->sock4), rcu_dereference(peer->device->sock6), &peer->endpoint_cache); - if (unlikely(!dst)) { + if (unlikely(IS_ERR(dst))) { net_dbg_ratelimited("No route to %pISpfsc for peer %Lu\n", &peer->endpoint_addr, peer->internal_id); kfree_skb(skb); - ret = -EHOSTUNREACH; + ret = PTR_ERR(dst); goto out; } else if (unlikely(dst->dev == dev)) { net_dbg_ratelimited("Avoiding routing loop to %pISpfsc for peer %Lu\n", &peer->endpoint_addr, peer->internal_id); -- cgit v1.2.3-59-g8ed1b