qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 1/2] net: stellaris_enet: check packet length against receive buffer
@ 2016-04-07 10:25 P J P
  2016-04-07 11:02 ` Peter Maydell
  0 siblings, 1 reply; 3+ messages in thread
From: P J P @ 2016-04-07 10:25 UTC (permalink / raw)
  To: Qemu Developers; +Cc: Oleksandr Bazhaniuk, Jason Wang, Prasad J Pandit

From: Prasad J Pandit <pjp@fedoraproject.org>

When receiving packets over Stellaris ethernet controller, it
uses receive buffer of size 2048 bytes. In case the controller
accepts large(MTU) packets, it could lead to memory corruption.
Add check to avoid it.

Reported by: Oleksandr Bazhaniuk <oleksandr.bazhaniuk@intel.com>

Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
---
 hw/net/stellaris_enet.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c
index 21a4773..47b869a 100644
--- a/hw/net/stellaris_enet.c
+++ b/hw/net/stellaris_enet.c
@@ -237,6 +237,9 @@ static ssize_t stellaris_enet_receive(NetClientState *nc, const uint8_t *buf, si
         n -= 31;
     s->np++;
 
+    if (size >= sizeof(s->rx[n].data) - 6) {
+        return -1;
+    }
     s->rx[n].len = size + 6;
     p = s->rx[n].data;
     *(p++) = (size + 6);
-- 
2.5.5

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

end of thread, other threads:[~2016-04-07 12:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-07 10:25 [Qemu-devel] [PATCH 1/2] net: stellaris_enet: check packet length against receive buffer P J P
2016-04-07 11:02 ` Peter Maydell
2016-04-07 12:37   ` P J P

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).