diff --git a/examples/nip_route.c b/examples/nip_route.c index 84b7434bd3f45da08c968d9076dacf945611415f..a37a44b2ff65833988ecd271fdff03ada17d5dcf 100644 --- a/examples/nip_route.c +++ b/examples/nip_route.c @@ -96,7 +96,7 @@ int parse_name(char **argv, int *ifindex, char *dev) int len = strlen(*argv); memset(dev, 0, ARRAY_LEN); - if (!len || len >= (ARRAY_LEN - 1)) + if (len >= (ARRAY_LEN - 1) || !len) return -1; memcpy(dev, *argv, len); dev[len + 1] = '\0'; diff --git a/src/linux/include/net/nip.h b/src/linux/include/net/nip.h index db186e7b7daf39f4f02b0bfd4518eadcc6f4ba32..6343aa7a20afc0eaf5cee9af2a0986ed14ea1ebe 100644 --- a/src/linux/include/net/nip.h +++ b/src/linux/include/net/nip.h @@ -89,7 +89,6 @@ static inline u32 nip_addr_hash(const struct nip_addr *a) int nip_send_skb(struct sk_buff *skb); void ninet_destroy_sock(struct sock *sk); -int nip_datagram_connect_v6_only(struct sock *sk, struct sockaddr *addr, int addr_len); int nip_datagram_dst_update(struct sock *sk, bool fix_sk_saddr); int ninet_add_protocol(const struct ninet_protocol *prot, unsigned char protocol); int ninet_del_protocol(const struct ninet_protocol *prot, unsigned char protocol); diff --git a/src/linux/net/newip/tcp_nip.c b/src/linux/net/newip/tcp_nip.c index 20f6a3a2dfebb728439c4fcbfebbd85fd5de7bce..2b458e3d89e93bb2e82dbe42533d0a2f00106272 100644 --- a/src/linux/net/newip/tcp_nip.c +++ b/src/linux/net/newip/tcp_nip.c @@ -1304,6 +1304,7 @@ static int tcp_nip_do_rcv(struct sock *sk, struct sk_buff *skb) struct dst_entry *dst = sk->sk_rx_dst; if (dst) { + /* Triggered when processing newly received skb after deleting routes */ if (inet_sk(sk)->rx_dst_ifindex != skb->skb_iif || !dst->ops->check(dst, 0)) { dst_release(dst);