summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2015-01-17 09:21:04 -0800
committerBen Pfaff <blp@nicira.com>2015-01-19 10:09:53 -0800
commit53cc4b0a37977aac0f7b215e71974e81de71450e (patch)
tree0baf8a9aa5de6f35dfe9e8165b9a52fa688dfb01
parente20a72001df0b173c00e0bffa94e09322377de3b (diff)
downloadopenvswitch-branch-1.11.tar.gz
pktbuf: Always initialize '*bufferp' even when 'pb == NULL'.branch-1.11
Otherwise if a service connection (which does not have buffers) attempts to use buffers, '*bufferp' will be uninitialized, which can cause a segfault in the caller. Found using OFtest configured to use service (active rather than passive) connections. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com>
-rw-r--r--ofproto/pktbuf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ofproto/pktbuf.c b/ofproto/pktbuf.c
index 902b19dd7..b618a0e9b 100644
--- a/ofproto/pktbuf.c
+++ b/ofproto/pktbuf.c
@@ -185,7 +185,8 @@ pktbuf_retrieve(struct pktbuf *pb, uint32_t id, struct ofpbuf **bufferp,
if (!pb) {
VLOG_WARN_RL(&rl, "attempt to send buffered packet via connection "
"without buffers");
- return OFPERR_OFPBRC_BUFFER_UNKNOWN;
+ error = OFPERR_OFPBRC_BUFFER_UNKNOWN;
+ goto error;
}
p = &pb->packets[id & PKTBUF_MASK];