From d962ebc5dfaf63fb932940ab29d986876ff0749e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 13 Jan 2012 13:30:42 -0800 Subject: netdev-dummy: Fix use-after-free error. Found by valgrind. Signed-off-by: Ben Pfaff --- lib/netdev-dummy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 94dea765..d94af415 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2011 Nicira Networks. + * Copyright (c) 2010, 2011, 2012 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -156,6 +156,7 @@ netdev_dummy_recv(struct netdev *netdev_, void *buffer, size_t size) { struct netdev_dummy *netdev = netdev_dummy_cast(netdev_); struct ofpbuf *packet; + size_t packet_size; if (list_is_empty(&netdev->recv_queue)) { return -EAGAIN; @@ -165,11 +166,12 @@ netdev_dummy_recv(struct netdev *netdev_, void *buffer, size_t size) if (packet->size > size) { return -EMSGSIZE; } + packet_size = packet->size; memcpy(buffer, packet->data, packet->size); ofpbuf_delete(packet); - return packet->size; + return packet_size; } static void -- cgit v1.2.3