| To: | Pablo Neira <pablo@xxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH] Improve behaviour of Netlink Sockets |
| From: | Pablo Neira <pablo@xxxxxxxxxxx> |
| Date: | Sun, 19 Sep 2004 07:18:36 +0200 |
| Cc: | Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>, netdev@xxxxxxxxxxx |
| In-reply-to: | <414D0CCD.90209@xxxxxxxxxxx> |
| References: | <E1C8cPd-0006K8-00@xxxxxxxxxxxxxxxxxxxxxxxx> <414D0CCD.90209@xxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla/5.0 (X11; U; Linux i686; rv:1.6) Gecko/20040528 Debian/1.6-7 |
Pablo Neira wrote: you are right, I missed that, but I prefer the patches attached to this email. wrong 2.6 patch, consider this instead regards, Pablo diff -u -r1.1.1.2 af_netlink.c
--- a/net/netlink/af_netlink.c 4 Sep 2004 17:34:06 -0000 1.1.1.2
+++ b/net/netlink/af_netlink.c 19 Sep 2004 03:57:20 -0000
@@ -629,18 +629,20 @@
kmalloc(sizeof(struct netlink_work),
GFP_KERNEL);
if (!nlwork)
- return -1;
+ return 0;
INIT_WORK(&nlwork->work, netlink_wq_handler, nlwork);
nlwork->sk = sk;
nlwork->len = skb->len;
queue_work(netlink_wq, &nlwork->work);
- } else
+ } else {
sk->sk_data_ready(sk, skb->len);
+ sock_put(sk);
+ }
- return 0;
+ return 1;
}
- return -1;
+ return 0;
}
int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, u32 pid,
@@ -685,11 +687,11 @@
failure = 1;
sock_put(sk);
} else if (netlink_broadcast_deliver(sk, skb2)) {
- netlink_overrun(sk);
- sock_put(sk);
- } else {
delivered = 1;
skb2 = NULL;
+ } else {
+ netlink_overrun(sk);
+ sock_put(sk);
}
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH] Improve behaviour of Netlink Sockets, Pablo Neira |
|---|---|
| Next by Date: | [PATCH 2.6] fix zombie netlink socket in user space, Pablo Neira |
| Previous by Thread: | Re: [PATCH] Improve behaviour of Netlink Sockets, Pablo Neira |
| Next by Thread: | Re: [PATCH] Improve behaviour of Netlink Sockets, Herbert Xu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |