mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	tcp: correctly handle increased zerocopy args struct size
A prior patch increased the size of struct tcp_zerocopy_receive
but did not update do_tcp_getsockopt() handling to properly account
for this.
This patch simply reintroduces content erroneously cut from the
referenced prior patch that handles the new struct size.
Fixes: 18fb76ed53 ("net-zerocopy: Copy straggler unaligned data for TCP Rx. zerocopy.")
Signed-off-by: Arjun Roy <arjunroy@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									a76b6b1fe8
								
							
						
					
					
						commit
						e0fecb289a
					
				| @ -4082,7 +4082,7 @@ static int do_tcp_getsockopt(struct sock *sk, int level, | ||||
| 	} | ||||
| #ifdef CONFIG_MMU | ||||
| 	case TCP_ZEROCOPY_RECEIVE: { | ||||
| 		struct tcp_zerocopy_receive zc; | ||||
| 		struct tcp_zerocopy_receive zc = {}; | ||||
| 		int err; | ||||
| 
 | ||||
| 		if (get_user(len, optlen)) | ||||
| @ -4099,7 +4099,7 @@ static int do_tcp_getsockopt(struct sock *sk, int level, | ||||
| 		lock_sock(sk); | ||||
| 		err = tcp_zerocopy_receive(sk, &zc); | ||||
| 		release_sock(sk); | ||||
| 		if (len == sizeof(zc)) | ||||
| 		if (len >= offsetofend(struct tcp_zerocopy_receive, err)) | ||||
| 			goto zerocopy_rcv_sk_err; | ||||
| 		switch (len) { | ||||
| 		case offsetofend(struct tcp_zerocopy_receive, err): | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Arjun Roy
						Arjun Roy