<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net, branch v4.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.3</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2015-10-29T14:01:50Z</updated>
<entry>
<title>ipv6: protect mtu calculation of wrap-around and infinite loop by rounding issues</title>
<updated>2015-10-29T14:01:50Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2015-10-28T12:21:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=89bc7848a91bc99532f5c21b2885472ba710f249'/>
<id>urn:sha1:89bc7848a91bc99532f5c21b2885472ba710f249</id>
<content type='text'>
Raw sockets with hdrincl enabled can insert ipv6 extension headers
right into the data stream. In case we need to fragment those packets,
we reparse the options header to find the place where we can insert
the fragment header. If the extension headers exceed the link's MTU we
actually cannot make progress in such a case.

Instead of ending up in broken arithmetic or rounding towards 0 and
entering an endless loop in ip6_fragment, just prevent those cases by
aborting early and signal -EMSGSIZE to user space.

This is the second version of the patch which doesn't use the
overflow_usub function, which got reverted for now.

Suggested-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Reported-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Cc: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Revert "Merge branch 'ipv6-overflow-arith'"</title>
<updated>2015-10-29T14:01:48Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2015-10-28T12:21:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1e0d69a9cc9172d7896c2113f983a74f6e8ff303'/>
<id>urn:sha1:1e0d69a9cc9172d7896c2113f983a74f6e8ff303</id>
<content type='text'>
Linus dislikes these changes. To not hold up the net-merge let's revert
it for now and fix the bug like Linus suggested.

This reverts commit ec3661b42257d9a06cf0d318175623ac7a660113, reversing
changes made to c80dbe04612986fd6104b4a1be21681b113b5ac9.

Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv</title>
<updated>2015-10-28T02:46:34Z</updated>
<author>
<name>Sowmini Varadhan</name>
<email>sowmini.varadhan@oracle.com</email>
</author>
<published>2015-10-26T16:46:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8ce675ff39b9958d1c10f86cf58e357efaafc856'/>
<id>urn:sha1:8ce675ff39b9958d1c10f86cf58e357efaafc856</id>
<content type='text'>
Either of pskb_pull() or pskb_trim() may fail under low memory conditions.
If rds_tcp_data_recv() ignores such failures, the application will
receive corrupted data because the skb has not been correctly
carved to the RDS datagram size.

Avoid this by handling pskb_pull/pskb_trim failure in the same
manner as the skb_clone failure: bail out of rds_tcp_data_recv(), and
retry via the deferred call to rds_send_worker() that gets set up on
ENOMEM from rds_tcp_read_sock()

Signed-off-by: Sowmini Varadhan &lt;sowmini.varadhan@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Fix skb leak using IPv6 defrag</title>
<updated>2015-10-28T02:32:18Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-26T03:21:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6f5cadee44d83395dcd78d557b577e1021e192e4'/>
<id>urn:sha1:6f5cadee44d83395dcd78d557b577e1021e192e4</id>
<content type='text'>
nf_ct_frag6_gather() makes a clone of each skb passed to it, and if the
reassembly is successful, expects the caller to free all of the original
skbs using nf_ct_frag6_consume_orig(). This call was previously missing,
meaning that the original fragments were never freed (with the exception
of the last fragment to arrive).

Fix this by ensuring that all original fragments except for the last
fragment are freed via nf_ct_frag6_consume_orig(). The last fragment
will be morphed into the head, so it must not be freed yet. Furthermore,
retain the -&gt;next pointer for the head after skb_morph().

Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
Reported-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Export nf_ct_frag6_consume_orig()</title>
<updated>2015-10-28T02:32:17Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-26T03:21:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=190b8ffbb700a9aa47acc559779bc79c0cb14766'/>
<id>urn:sha1:190b8ffbb700a9aa47acc559779bc79c0cb14766</id>
<content type='text'>
This is needed in openvswitch to fix an skb leak in the next patch.

Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>openvswitch: Fix double-free on ip_defrag() errors</title>
<updated>2015-10-28T02:32:14Z</updated>
<author>
<name>Joe Stringer</name>
<email>joestringer@nicira.com</email>
</author>
<published>2015-10-26T03:21:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=74c16618137f1505b0a32dea3ec73a2ef6f8f842'/>
<id>urn:sha1:74c16618137f1505b0a32dea3ec73a2ef6f8f842</id>
<content type='text'>
If ip_defrag() returns an error other than -EINPROGRESS, then the skb is
freed. When handle_fragments() passes this back up to
do_execute_actions(), it will be freed again. Prevent this double free
by never freeing the skb in do_execute_actions() for errors returned by
ovs_ct_execute. Always free it in ovs_ct_execute() error paths instead.

Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
Reported-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: Joe Stringer &lt;joestringer@nicira.com&gt;
Acked-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>fib_trie: leaf_walk_rcu should not compute key if key is less than pn-&gt;key</title>
<updated>2015-10-28T01:14:51Z</updated>
<author>
<name>Alexander Duyck</name>
<email>aduyck@mirantis.com</email>
</author>
<published>2015-10-27T22:06:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c2229fe1430d4e1c70e36520229dd64a87802b20'/>
<id>urn:sha1:c2229fe1430d4e1c70e36520229dd64a87802b20</id>
<content type='text'>
We were computing the child index in cases where the key value we were
looking for was actually less than the base key of the tnode.  As a result
we were getting incorrect index values that would cause us to skip over
some children.

To fix this I have added a test that will force us to use child index 0 if
the key we are looking for is less than the key of the current tnode.

Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf")
Reported-by: Brian Rak &lt;brak@gameservers.com&gt;
Signed-off-by: Alexander Duyck &lt;aduyck@mirantis.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: gre: support SIT encapsulation</title>
<updated>2015-10-27T05:01:18Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2015-10-24T12:47:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7e3b6e7423d5f994257c1de88e06b509673fdbcf'/>
<id>urn:sha1:7e3b6e7423d5f994257c1de88e06b509673fdbcf</id>
<content type='text'>
gre_gso_segment() chokes if SIT frames were aggregated by GRO engine.

Fixes: 61c1db7fae21e ("ipv6: sit: add GSO/TSO support")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sysctl: fix a kmemleak warning</title>
<updated>2015-10-23T13:22:08Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2015-10-23T12:59:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ce9d9b8e5c2b7486edf76958bcdb5e6534a915b0'/>
<id>urn:sha1:ce9d9b8e5c2b7486edf76958bcdb5e6534a915b0</id>
<content type='text'>
the returned buffer of register_sysctl() is stored into net_header
variable, but net_header is not used after, and compiler maybe
optimise the variable out, and lead kmemleak reported the below warning

	comm "swapper/0", pid 1, jiffies 4294937448 (age 267.270s)
	hex dump (first 32 bytes):
	90 38 8b 01 c0 ff ff ff 00 00 00 00 01 00 00 00 .8..............
	01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
	backtrace:
	[&lt;ffffffc00020f134&gt;] create_object+0x10c/0x2a0
	[&lt;ffffffc00070ff44&gt;] kmemleak_alloc+0x54/0xa0
	[&lt;ffffffc0001fe378&gt;] __kmalloc+0x1f8/0x4f8
	[&lt;ffffffc00028e984&gt;] __register_sysctl_table+0x64/0x5a0
	[&lt;ffffffc00028eef0&gt;] register_sysctl+0x30/0x40
	[&lt;ffffffc00099c304&gt;] net_sysctl_init+0x20/0x58
	[&lt;ffffffc000994dd8&gt;] sock_init+0x10/0xb0
	[&lt;ffffffc0000842e0&gt;] do_one_initcall+0x90/0x1b8
	[&lt;ffffffc000966bac&gt;] kernel_init_freeable+0x218/0x2f0
	[&lt;ffffffc00070ed6c&gt;] kernel_init+0x1c/0xe8
	[&lt;ffffffc000083bfc&gt;] ret_from_fork+0xc/0x50
	[&lt;ffffffffffffffff&gt;] 0xffffffffffffffff &lt;&lt;end check kmemleak&gt;&gt;

Before fix, the objdump result on ARM64:
0000000000000000 &lt;net_sysctl_init&gt;:
   0:   a9be7bfd        stp     x29, x30, [sp,#-32]!
   4:   90000001        adrp    x1, 0 &lt;net_sysctl_init&gt;
   8:   90000000        adrp    x0, 0 &lt;net_sysctl_init&gt;
   c:   910003fd        mov     x29, sp
  10:   91000021        add     x1, x1, #0x0
  14:   91000000        add     x0, x0, #0x0
  18:   a90153f3        stp     x19, x20, [sp,#16]
  1c:   12800174        mov     w20, #0xfffffff4                // #-12
  20:   94000000        bl      0 &lt;register_sysctl&gt;
  24:   b4000120        cbz     x0, 48 &lt;net_sysctl_init+0x48&gt;
  28:   90000013        adrp    x19, 0 &lt;net_sysctl_init&gt;
  2c:   91000273        add     x19, x19, #0x0
  30:   9101a260        add     x0, x19, #0x68
  34:   94000000        bl      0 &lt;register_pernet_subsys&gt;
  38:   2a0003f4        mov     w20, w0
  3c:   35000060        cbnz    w0, 48 &lt;net_sysctl_init+0x48&gt;
  40:   aa1303e0        mov     x0, x19
  44:   94000000        bl      0 &lt;register_sysctl_root&gt;
  48:   2a1403e0        mov     w0, w20
  4c:   a94153f3        ldp     x19, x20, [sp,#16]
  50:   a8c27bfd        ldp     x29, x30, [sp],#32
  54:   d65f03c0        ret
After:
0000000000000000 &lt;net_sysctl_init&gt;:
   0:   a9bd7bfd        stp     x29, x30, [sp,#-48]!
   4:   90000000        adrp    x0, 0 &lt;net_sysctl_init&gt;
   8:   910003fd        mov     x29, sp
   c:   a90153f3        stp     x19, x20, [sp,#16]
  10:   90000013        adrp    x19, 0 &lt;net_sysctl_init&gt;
  14:   91000000        add     x0, x0, #0x0
  18:   91000273        add     x19, x19, #0x0
  1c:   f90013f5        str     x21, [sp,#32]
  20:   aa1303e1        mov     x1, x19
  24:   12800175        mov     w21, #0xfffffff4                // #-12
  28:   94000000        bl      0 &lt;register_sysctl&gt;
  2c:   f9002260        str     x0, [x19,#64]
  30:   b40001a0        cbz     x0, 64 &lt;net_sysctl_init+0x64&gt;
  34:   90000014        adrp    x20, 0 &lt;net_sysctl_init&gt;
  38:   91000294        add     x20, x20, #0x0
  3c:   9101a280        add     x0, x20, #0x68
  40:   94000000        bl      0 &lt;register_pernet_subsys&gt;
  44:   2a0003f5        mov     w21, w0
  48:   35000080        cbnz    w0, 58 &lt;net_sysctl_init+0x58&gt;
  4c:   aa1403e0        mov     x0, x20
  50:   94000000        bl      0 &lt;register_sysctl_root&gt;
  54:   14000004        b       64 &lt;net_sysctl_init+0x64&gt;
  58:   f9402260        ldr     x0, [x19,#64]
  5c:   94000000        bl      0 &lt;unregister_sysctl_table&gt;
  60:   f900227f        str     xzr, [x19,#64]
  64:   2a1503e0        mov     w0, w21
  68:   f94013f5        ldr     x21, [sp,#32]
  6c:   a94153f3        ldp     x19, x20, [sp,#16]
  70:   a8c37bfd        ldp     x29, x30, [sp],#48
  74:   d65f03c0        ret

Add the possible error handle to free the net_header to remove the
kmemleak warning

Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>af_key: fix two typos</title>
<updated>2015-10-23T10:05:19Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2015-10-22T03:35:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f6b8dec99865ea906150e963eacbfd037b579ee9'/>
<id>urn:sha1:f6b8dec99865ea906150e963eacbfd037b579ee9</id>
<content type='text'>
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
