All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples
@ 2017-11-11  6:19 Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The programs were returning -1 in some cases when they should
only return 0 or 1. Changes in the verifier now catch this
issue and the programs fail to load. This is now fixed.

[PATCH net-next v2 1/6] bpf: Fix tcp_synrto_kern.c sample program
[PATCH net-next v2 2/6] bpf: Fix tcp_rwnd_kern.c sample program
[PATCH net-next v2 3/6] bpf: Fix tcp_bufs_kern.c sample program
[PATCH net-next v2 4/6] bpf: Fix tcp_cong_kern.c sample program
[PATCH net-next v2 5/6] bpf: Fix tcp_iw_kern.c sample program
[PATCH net-next v2 6/6] bpf: Fix tcp_clamp_kern.c sample program

samples/bpf/tcp_bufs_kern.c   | 14 ++++++++------
samples/bpf/tcp_clamp_kern.c  | 24 +++++++++++++-----------
samples/bpf/tcp_cong_kern.c   |  6 ++++--
samples/bpf/tcp_iw_kern.c     | 14 ++++++++------
samples/bpf/tcp_rwnd_kern.c   |  6 ++++--
samples/bpf/tcp_synrto_kern.c |  6 ++++--
files changed, 41 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH net-next v2 1/6] bpf: Fix tcp_synrto_kern.c sample program
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
@ 2017-11-11  6:19 ` Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 2/6] bpf: Fix tcp_rwnd_kern.c " Lawrence Brakmo
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The program was returning -1 in some cases which is not allowed
by the verifier any longer.

Fixes: 390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
 samples/bpf/tcp_synrto_kern.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/samples/bpf/tcp_synrto_kern.c b/samples/bpf/tcp_synrto_kern.c
index 3c3fc83..232bb24 100644
--- a/samples/bpf/tcp_synrto_kern.c
+++ b/samples/bpf/tcp_synrto_kern.c
@@ -38,8 +38,10 @@ int bpf_synrto(struct bpf_sock_ops *skops)
 	 * if neither port numberis 55601
 	 */
 	if (bpf_ntohl(skops->remote_port) != 55601 &&
-	    skops->local_port != 55601)
-		return -1;
+	    skops->local_port != 55601) {
+		skops->reply = -1;
+		return 1;
+	}
 
 	op = (int) skops->op;
 
-- 
2.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v2 2/6] bpf: Fix tcp_rwnd_kern.c sample program
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
@ 2017-11-11  6:19 ` Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 3/6] bpf: Fix tcp_bufs_kern.c " Lawrence Brakmo
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The program was returning -1 in some cases which is not allowed
by the verifier any longer.

Fixes: 390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
 samples/bpf/tcp_rwnd_kern.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/samples/bpf/tcp_rwnd_kern.c b/samples/bpf/tcp_rwnd_kern.c
index 3f2a228..09ff65b 100644
--- a/samples/bpf/tcp_rwnd_kern.c
+++ b/samples/bpf/tcp_rwnd_kern.c
@@ -38,8 +38,10 @@ int bpf_rwnd(struct bpf_sock_ops *skops)
 	 * if neither port numberis 55601
 	 */
 	if (bpf_ntohl(skops->remote_port) !=
-	    55601 && skops->local_port != 55601)
-		return -1;
+	    55601 && skops->local_port != 55601) {
+		skops->reply = -1;
+		return 1;
+	}
 
 	op = (int) skops->op;
 
-- 
2.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v2 3/6] bpf: Fix tcp_bufs_kern.c sample program
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 2/6] bpf: Fix tcp_rwnd_kern.c " Lawrence Brakmo
@ 2017-11-11  6:19 ` Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 4/6] bpf: Fix tcp_cong_kern.c " Lawrence Brakmo
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The program was returning -1 in some cases which is not allowed
by the verifier any longer.

Fixes: 390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
 samples/bpf/tcp_bufs_kern.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/samples/bpf/tcp_bufs_kern.c b/samples/bpf/tcp_bufs_kern.c
index ee83bba..0566b7f 100644
--- a/samples/bpf/tcp_bufs_kern.c
+++ b/samples/bpf/tcp_bufs_kern.c
@@ -41,8 +41,10 @@ int bpf_bufs(struct bpf_sock_ops *skops)
 	 * if neither port numberis 55601
 	 */
 	if (bpf_ntohl(skops->remote_port) != 55601 &&
-	    skops->local_port != 55601)
-		return -1;
+	    skops->local_port != 55601) {
+		skops->reply = -1;
+		return 1;
+	}
 
 	op = (int) skops->op;
 
@@ -61,8 +63,8 @@ int bpf_bufs(struct bpf_sock_ops *skops)
 		/* Set sndbuf and rcvbuf of active connections */
 		rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
 				    sizeof(bufsize));
-		rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
-					     &bufsize, sizeof(bufsize));
+		rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+				     &bufsize, sizeof(bufsize));
 		break;
 	case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:
 		/* Nothing to do */
@@ -71,8 +73,8 @@ int bpf_bufs(struct bpf_sock_ops *skops)
 		/* Set sndbuf and rcvbuf of passive connections */
 		rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
 				    sizeof(bufsize));
-		rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
-					     &bufsize, sizeof(bufsize));
+		rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+				     &bufsize, sizeof(bufsize));
 		break;
 	default:
 		rv = -1;
-- 
2.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v2 4/6] bpf: Fix tcp_cong_kern.c sample program
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
                   ` (2 preceding siblings ...)
  2017-11-11  6:19 ` [PATCH net-next v2 3/6] bpf: Fix tcp_bufs_kern.c " Lawrence Brakmo
@ 2017-11-11  6:19 ` Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 5/6] bpf: Fix tcp_iw_kern.c " Lawrence Brakmo
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The program was returning -1 in some cases which is not allowed
by the verifier any longer.

Fixes: 390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
 samples/bpf/tcp_cong_kern.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/samples/bpf/tcp_cong_kern.c b/samples/bpf/tcp_cong_kern.c
index dac15bc..ad0f1ba 100644
--- a/samples/bpf/tcp_cong_kern.c
+++ b/samples/bpf/tcp_cong_kern.c
@@ -39,8 +39,10 @@ int bpf_cong(struct bpf_sock_ops *skops)
 	 * if neither port numberis 55601
 	 */
 	if (bpf_ntohl(skops->remote_port) != 55601 &&
-	    skops->local_port != 55601)
-		return -1;
+	    skops->local_port != 55601) {
+		skops->reply = -1;
+		return 1;
+	}
 
 	op = (int) skops->op;
 
-- 
2.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v2 5/6] bpf: Fix tcp_iw_kern.c sample program
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
                   ` (3 preceding siblings ...)
  2017-11-11  6:19 ` [PATCH net-next v2 4/6] bpf: Fix tcp_cong_kern.c " Lawrence Brakmo
@ 2017-11-11  6:19 ` Lawrence Brakmo
  2017-11-11  6:19 ` [PATCH net-next v2 6/6] bpf: Fix tcp_clamp_kern.c " Lawrence Brakmo
  2017-11-11  6:52 ` [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples David Miller
  6 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The program was returning -1 in some cases which is not allowed
by the verifier any longer.

Fixes: 390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
 samples/bpf/tcp_iw_kern.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/samples/bpf/tcp_iw_kern.c b/samples/bpf/tcp_iw_kern.c
index 23c5122..4ca5ecc 100644
--- a/samples/bpf/tcp_iw_kern.c
+++ b/samples/bpf/tcp_iw_kern.c
@@ -42,8 +42,10 @@ int bpf_iw(struct bpf_sock_ops *skops)
 	 * if neither port numberis 55601
 	 */
 	if (bpf_ntohl(skops->remote_port) != 55601 &&
-	    skops->local_port != 55601)
-		return -1;
+	    skops->local_port != 55601) {
+		skops->reply = -1;
+		return 1;
+	}
 
 	op = (int) skops->op;
 
@@ -62,8 +64,8 @@ int bpf_iw(struct bpf_sock_ops *skops)
 		/* Set sndbuf and rcvbuf of active connections */
 		rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
 				    sizeof(bufsize));
-		rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
-					     &bufsize, sizeof(bufsize));
+		rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+				     &bufsize, sizeof(bufsize));
 		break;
 	case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:
 		rv = bpf_setsockopt(skops, SOL_TCP, TCP_BPF_IW, &iw,
@@ -73,8 +75,8 @@ int bpf_iw(struct bpf_sock_ops *skops)
 		/* Set sndbuf and rcvbuf of passive connections */
 		rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
 				    sizeof(bufsize));
-		rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
-					     &bufsize, sizeof(bufsize));
+		rv +=  bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+				      &bufsize, sizeof(bufsize));
 		break;
 	default:
 		rv = -1;
-- 
2.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v2 6/6] bpf: Fix tcp_clamp_kern.c sample program
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
                   ` (4 preceding siblings ...)
  2017-11-11  6:19 ` [PATCH net-next v2 5/6] bpf: Fix tcp_iw_kern.c " Lawrence Brakmo
@ 2017-11-11  6:19 ` Lawrence Brakmo
  2017-11-11  6:52 ` [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples David Miller
  6 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-11  6:19 UTC (permalink / raw)
  To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann

The program was returning -1 in some cases which is not allowed
by the verifier any longer.

Fixes: 390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
 samples/bpf/tcp_clamp_kern.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/samples/bpf/tcp_clamp_kern.c b/samples/bpf/tcp_clamp_kern.c
index d68eadd9..f4225c9 100644
--- a/samples/bpf/tcp_clamp_kern.c
+++ b/samples/bpf/tcp_clamp_kern.c
@@ -41,8 +41,10 @@ int bpf_clamp(struct bpf_sock_ops *skops)
 	/* For testing purposes, only execute rest of BPF program
 	 * if neither port numberis 55601
 	 */
-	if (bpf_ntohl(skops->remote_port) != 55601 && skops->local_port != 55601)
-		return -1;
+	if (bpf_ntohl(skops->remote_port) != 55601 && skops->local_port != 55601) {
+		skops->reply = -1;
+		return 0;
+	}
 
 	op = (int) skops->op;
 
@@ -66,9 +68,9 @@ int bpf_clamp(struct bpf_sock_ops *skops)
 			/* Set sndbuf and rcvbuf of active connections */
 			rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF,
 					    &bufsize, sizeof(bufsize));
-			rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET,
-						      SO_RCVBUF, &bufsize,
-						      sizeof(bufsize));
+			rv += bpf_setsockopt(skops, SOL_SOCKET,
+					     SO_RCVBUF, &bufsize,
+					     sizeof(bufsize));
 			break;
 		case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:
 			rv = bpf_setsockopt(skops, SOL_TCP,
@@ -80,12 +82,12 @@ int bpf_clamp(struct bpf_sock_ops *skops)
 			rv = bpf_setsockopt(skops, SOL_TCP,
 					    TCP_BPF_SNDCWND_CLAMP,
 					    &clamp, sizeof(clamp));
-			rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET,
-						      SO_SNDBUF, &bufsize,
-						      sizeof(bufsize));
-			rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET,
-						      SO_RCVBUF, &bufsize,
-						      sizeof(bufsize));
+			rv += bpf_setsockopt(skops, SOL_SOCKET,
+					     SO_SNDBUF, &bufsize,
+					     sizeof(bufsize));
+			rv += bpf_setsockopt(skops, SOL_SOCKET,
+					     SO_RCVBUF, &bufsize,
+					     sizeof(bufsize));
 			break;
 		default:
 			rv = -1;
-- 
2.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples
  2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
                   ` (5 preceding siblings ...)
  2017-11-11  6:19 ` [PATCH net-next v2 6/6] bpf: Fix tcp_clamp_kern.c " Lawrence Brakmo
@ 2017-11-11  6:52 ` David Miller
  6 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2017-11-11  6:52 UTC (permalink / raw)
  To: brakmo; +Cc: netdev, ast, daniel

From: Lawrence Brakmo <brakmo@fb.com>
Date: Fri, 10 Nov 2017 22:19:49 -0800

> The programs were returning -1 in some cases when they should
> only return 0 or 1. Changes in the verifier now catch this
> issue and the programs fail to load. This is now fixed.

Series applied, thanks Lawrence.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-11-11  6:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-11  6:19 [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples Lawrence Brakmo
2017-11-11  6:19 ` [PATCH net-next v2 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
2017-11-11  6:19 ` [PATCH net-next v2 2/6] bpf: Fix tcp_rwnd_kern.c " Lawrence Brakmo
2017-11-11  6:19 ` [PATCH net-next v2 3/6] bpf: Fix tcp_bufs_kern.c " Lawrence Brakmo
2017-11-11  6:19 ` [PATCH net-next v2 4/6] bpf: Fix tcp_cong_kern.c " Lawrence Brakmo
2017-11-11  6:19 ` [PATCH net-next v2 5/6] bpf: Fix tcp_iw_kern.c " Lawrence Brakmo
2017-11-11  6:19 ` [PATCH net-next v2 6/6] bpf: Fix tcp_clamp_kern.c " Lawrence Brakmo
2017-11-11  6:52 ` [PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.