aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2016-11-04 19:02:46 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2016-11-04 19:03:18 +0100
commit817464aa9c879ed8d24286a6dac2df060a345b62 (patch)
treefc11536263c6713a34af183c1e5da445a0a673f2
parentcompat: some grsec have get_random_long; others do not (diff)
downloadwireguard-monolithic-historical-817464aa9c879ed8d24286a6dac2df060a345b62.tar.xz
wireguard-monolithic-historical-817464aa9c879ed8d24286a6dac2df060a345b62.zip
socket: route() returns an error pointer, not NULL on failure
Reported-by: Cedric Buxin <cedric.buxin@izri.org>
-rw-r--r--src/socket.c4
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);