From: Ben Pfaff Date: Sat, 17 Jan 2015 17:21:04 +0000 (-0800) Subject: pktbuf: Always initialize '*bufferp' even when 'pb == NULL'. X-Git-Tag: v2.3.2~46 X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=fad10d5ece19d740eccd30f84de9f6bc9ac77abb pktbuf: Always initialize '*bufferp' even when 'pb == NULL'. 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 Acked-by: Thomas Graf --- diff --git a/ofproto/pktbuf.c b/ofproto/pktbuf.c index 38ec34853..43b17c741 100644 --- a/ofproto/pktbuf.c +++ b/ofproto/pktbuf.c @@ -184,7 +184,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];