diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-11-04 19:02:46 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-11-04 19:03:18 +0100 |
commit | 04c0a0c828b5372c0f0b56716efd2590604e2ca4 (patch) | |
tree | 235ba1f2c289b92ad68e4b4bdba74094c7e08482 /src/socket.c | |
parent | 7e3ee88aab795d44b53f2c6d967f2fb5140554f6 (diff) |
socket: route() returns an error pointer, not NULL on failure
Reported-by: Cedric Buxin <cedric.buxin@izri.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/socket.c')
-rw-r--r-- | src/socket.c | 4 |
1 files changed, 2 insertions, 2 deletions
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); |