[RFC/PATCH 1/3] UDP memory usage accounting: fix send buffer check
From: Satoshi OSHIMA <hidden>
Date: 2007-09-21 12:30:13
From: Satoshi OSHIMA <hidden>
Date: 2007-09-21 12:30:13
This patch introduces sndbuf size check before memory allcation for send buffer. signed-off-by: Satoshi Oshima <redacted> signed-off-by: Hideo Aoki <redacted> Index: 2.6.23-rc7-udp_limit/net/ipv4/ip_output.c ===================================================================
--- 2.6.23-rc7-udp_limit.orig/net/ipv4/ip_output.c
+++ 2.6.23-rc7-udp_limit/net/ipv4/ip_output.c@@ -1004,6 +1004,11 @@ alloc_new_skb: frag = &skb_shinfo(skb)->frags[i]; } } else if (i < MAX_SKB_FRAGS) { + if (atomic_read(&sk->sk_wmem_alloc) + PAGE_SIZE + > 2 * sk->sk_sndbuf) { + err = -ENOBUFS; + goto error; + } if (copy > PAGE_SIZE) copy = PAGE_SIZE; page = alloc_pages(sk->sk_allocation, 0);