Loading net/ipv4/inet_diag.c +28 −29 Original line number Diff line number Diff line Loading @@ -185,7 +185,8 @@ static int inet_diag_fill(struct sk_buff *skb, struct sock *sk, return -1; } static int inet_diag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh) static int inet_diag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh) { int err; struct sock *sk; Loading Loading @@ -331,7 +332,8 @@ static int inet_diag_bc_run(const void *bc, int len, else addr = entry->daddr; if (bitstring_match(addr, cond->addr, cond->prefix_len)) if (bitstring_match(addr, cond->addr, cond->prefix_len)) break; if (entry->family == AF_INET6 && cond->family == AF_INET) { Loading Loading @@ -449,8 +451,7 @@ static int inet_diag_dump_sock(struct sk_buff *skb, struct sock *sk, } static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk, struct request_sock *req, u32 pid, u32 seq, struct request_sock *req, u32 pid, u32 seq, const struct nlmsghdr *unlh) { const struct inet_request_sock *ireq = inet_rsk(req); Loading Loading @@ -672,7 +673,6 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) s_num = 0; read_lock_bh(&head->lock); num = 0; sk_for_each(sk, node, &head->chain) { struct inet_sock *inet = inet_sk(sk); Loading @@ -684,7 +684,8 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) if (r->id.idiag_sport != inet->sport && r->id.idiag_sport) goto next_normal; if (r->id.idiag_dport != inet->dport && r->id.idiag_dport) if (r->id.idiag_dport != inet->dport && r->id.idiag_dport) goto next_normal; if (inet_diag_dump_sock(skb, sk, cb) < 0) { read_unlock_bh(&head->lock); Loading Loading @@ -724,8 +725,7 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) return skb->len; } static __inline__ int inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) static inline int inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) { if (!(nlh->nlmsg_flags&NLM_F_REQUEST)) return 0; Loading Loading @@ -755,9 +755,8 @@ inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) } return netlink_dump_start(idiagnl, skb, nlh, inet_diag_dump, NULL); } else { } else return inet_diag_get_exact(skb, nlh); } err_inval: return -EINVAL; Loading @@ -766,12 +765,12 @@ inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) static inline void inet_diag_rcv_skb(struct sk_buff *skb) { if (skb->len >= NLMSG_SPACE(0)) { int err; struct nlmsghdr * nlh; struct nlmsghdr *nlh = (struct nlmsghdr *)skb->data; if (skb->len >= NLMSG_SPACE(0)) { nlh = (struct nlmsghdr *)skb->data; if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) return; err = inet_diag_rcv_msg(skb, nlh); if (err || nlh->nlmsg_flags & NLM_F_ACK) Loading Loading
net/ipv4/inet_diag.c +28 −29 Original line number Diff line number Diff line Loading @@ -185,7 +185,8 @@ static int inet_diag_fill(struct sk_buff *skb, struct sock *sk, return -1; } static int inet_diag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh) static int inet_diag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh) { int err; struct sock *sk; Loading Loading @@ -331,7 +332,8 @@ static int inet_diag_bc_run(const void *bc, int len, else addr = entry->daddr; if (bitstring_match(addr, cond->addr, cond->prefix_len)) if (bitstring_match(addr, cond->addr, cond->prefix_len)) break; if (entry->family == AF_INET6 && cond->family == AF_INET) { Loading Loading @@ -449,8 +451,7 @@ static int inet_diag_dump_sock(struct sk_buff *skb, struct sock *sk, } static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk, struct request_sock *req, u32 pid, u32 seq, struct request_sock *req, u32 pid, u32 seq, const struct nlmsghdr *unlh) { const struct inet_request_sock *ireq = inet_rsk(req); Loading Loading @@ -672,7 +673,6 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) s_num = 0; read_lock_bh(&head->lock); num = 0; sk_for_each(sk, node, &head->chain) { struct inet_sock *inet = inet_sk(sk); Loading @@ -684,7 +684,8 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) if (r->id.idiag_sport != inet->sport && r->id.idiag_sport) goto next_normal; if (r->id.idiag_dport != inet->dport && r->id.idiag_dport) if (r->id.idiag_dport != inet->dport && r->id.idiag_dport) goto next_normal; if (inet_diag_dump_sock(skb, sk, cb) < 0) { read_unlock_bh(&head->lock); Loading Loading @@ -724,8 +725,7 @@ static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) return skb->len; } static __inline__ int inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) static inline int inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) { if (!(nlh->nlmsg_flags&NLM_F_REQUEST)) return 0; Loading Loading @@ -755,9 +755,8 @@ inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) } return netlink_dump_start(idiagnl, skb, nlh, inet_diag_dump, NULL); } else { } else return inet_diag_get_exact(skb, nlh); } err_inval: return -EINVAL; Loading @@ -766,12 +765,12 @@ inet_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) static inline void inet_diag_rcv_skb(struct sk_buff *skb) { if (skb->len >= NLMSG_SPACE(0)) { int err; struct nlmsghdr * nlh; struct nlmsghdr *nlh = (struct nlmsghdr *)skb->data; if (skb->len >= NLMSG_SPACE(0)) { nlh = (struct nlmsghdr *)skb->data; if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) return; err = inet_diag_rcv_msg(skb, nlh); if (err || nlh->nlmsg_flags & NLM_F_ACK) Loading