[PATCH] macvtap: fix TUNSETSNDBUF values > 64k

Subsystems: networking drivers, the rest

STALE4051d

4 messages, 3 authors, 2015-09-21 · open the first message on its own page

[PATCH] macvtap: fix TUNSETSNDBUF values > 64k

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2015-09-18 10:41:16

Upon TUNSETSNDBUF,  macvtap reads the requested sndbuf size into
a local variable u.
commit 39ec7de7092b ("macvtap: fix uninitialized access on
TUNSETIFF") changed its type to u16 (which is the right thing to
do for all other macvtap ioctls), breaking all values > 64k.

The value of TUNSETSNDBUF is actually a signed 32 bit integer, so
the right thing to do is to read it into an int.

Cc: David S. Miller <davem@davemloft.net>
Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF")
Reported-by: Mark A. Peloquin
Bisected-by: Matthew Rosato [off-list ref]
Reported-by: Christian Borntraeger <redacted>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---

This patch probably makes sense on stable.

 drivers/net/macvtap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index edd7734..248478c 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -1111,10 +1111,10 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
 		return 0;
 
 	case TUNSETSNDBUF:
-		if (get_user(u, up))
+		if (get_user(s, sp))
 			return -EFAULT;
 
-		q->sk.sk_sndbuf = u;
+		q->sk.sk_sndbuf = s;
 		return 0;
 
 	case TUNGETVNETHDRSZ:
-- 
MST

Re: [PATCH] macvtap: fix TUNSETSNDBUF values > 64k

From: Christian Borntraeger <hidden>
Date: 2015-09-18 10:49:18

Am 18.09.2015 um 12:41 schrieb Michael S. Tsirkin:
Upon TUNSETSNDBUF,  macvtap reads the requested sndbuf size into
a local variable u.
commit 39ec7de7092b ("macvtap: fix uninitialized access on
TUNSETIFF") changed its type to u16 (which is the right thing to
do for all other macvtap ioctls), breaking all values > 64k.

The value of TUNSETSNDBUF is actually a signed 32 bit integer, so
the right thing to do is to read it into an int.

Cc: David S. Miller <davem@davemloft.net>
Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF")
Reported-by: Mark A. Peloquin
Bisected-by: Matthew Rosato [off-list ref]
Reported-by: Christian Borntraeger <redacted>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
You can add
Tested-by:  Matthew Rosato <redacted>
as this looks identical to an early version of my patch which was tested,
by Matt. (I send you the other version that changes back u as I felt that
u and up are named to identify unsigned)

and please add
Acked-by: Christian Borntraeger <redacted>

what about
CC: stable@vger.kernel.org

Christian
quoted hunk
---

This patch probably makes sense on stable.

 drivers/net/macvtap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index edd7734..248478c 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -1111,10 +1111,10 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
 		return 0;

 	case TUNSETSNDBUF:
-		if (get_user(u, up))
+		if (get_user(s, sp))
 			return -EFAULT;

-		q->sk.sk_sndbuf = u;
+		q->sk.sk_sndbuf = s;
 		return 0;

 	case TUNGETVNETHDRSZ:

Re: [PATCH] macvtap: fix TUNSETSNDBUF values > 64k

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2015-09-18 10:50:44

On Fri, Sep 18, 2015 at 12:49:07PM +0200, Christian Borntraeger wrote:
Am 18.09.2015 um 12:41 schrieb Michael S. Tsirkin:
quoted
Upon TUNSETSNDBUF,  macvtap reads the requested sndbuf size into
a local variable u.
commit 39ec7de7092b ("macvtap: fix uninitialized access on
TUNSETIFF") changed its type to u16 (which is the right thing to
do for all other macvtap ioctls), breaking all values > 64k.

The value of TUNSETSNDBUF is actually a signed 32 bit integer, so
the right thing to do is to read it into an int.

Cc: David S. Miller <davem@davemloft.net>
Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF")
Reported-by: Mark A. Peloquin
Bisected-by: Matthew Rosato [off-list ref]
Reported-by: Christian Borntraeger <redacted>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
You can add
Tested-by:  Matthew Rosato <redacted>
as this looks identical to an early version of my patch which was tested,
by Matt. (I send you the other version that changes back u as I felt that
u and up are named to identify unsigned)

and please add
Acked-by: Christian Borntraeger <redacted>

what about
CC: stable@vger.kernel.org

Christian
David Miller adds that himself for netdev patches.
quoted
---

This patch probably makes sense on stable.

 drivers/net/macvtap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index edd7734..248478c 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -1111,10 +1111,10 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
 		return 0;

 	case TUNSETSNDBUF:
-		if (get_user(u, up))
+		if (get_user(s, sp))
 			return -EFAULT;

-		q->sk.sk_sndbuf = u;
+		q->sk.sk_sndbuf = s;
 		return 0;

 	case TUNGETVNETHDRSZ:

Re: [PATCH] macvtap: fix TUNSETSNDBUF values > 64k

From: David Miller <davem@davemloft.net>
Date: 2015-09-21 05:45:15

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Fri, 18 Sep 2015 13:41:09 +0300
Upon TUNSETSNDBUF,  macvtap reads the requested sndbuf size into
a local variable u.
commit 39ec7de7092b ("macvtap: fix uninitialized access on
TUNSETIFF") changed its type to u16 (which is the right thing to
do for all other macvtap ioctls), breaking all values > 64k.

The value of TUNSETSNDBUF is actually a signed 32 bit integer, so
the right thing to do is to read it into an int.

Cc: David S. Miller <davem@davemloft.net>
Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF")
Reported-by: Mark A. Peloquin
Bisected-by: Matthew Rosato [off-list ref]
Reported-by: Christian Borntraeger <redacted>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Applied and queued up for -stable, thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help