From: Dave Barach Date: Thu, 5 Jan 2017 15:08:52 +0000 (-0500) Subject: Fix uninitialized stack local, VPP-581 X-Git-Tag: v17.04-rc1~417 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=0691d6e9ff4388dc85e150c40bbc877bb74c02b1;hp=c0790cfef0bd1c56f4c75dc4f959584148386258;p=vpp.git Fix uninitialized stack local, VPP-581 Sporadically messes up the client message allocation ring, by setting c->message_bounce[msg_id] non-zero. A day-1 bug, made blatantly obvious by the python API language binding for no particular reason. Manually cherry-picked from stable/1701 due to the recent tree reorganization. Change-Id: Ifa03c5487436cbe50a6204db48fd9ce4938e32bb Signed-off-by: Dave Barach --- diff --git a/src/vlibapi/api_shared.c b/src/vlibapi/api_shared.c index 6a04fac92f4..18067d1d85e 100644 --- a/src/vlibapi/api_shared.c +++ b/src/vlibapi/api_shared.c @@ -691,6 +691,8 @@ vl_msg_api_set_handlers (int id, char *name, void *handler, void *cleanup, vl_msg_api_msg_config_t cfg; vl_msg_api_msg_config_t *c = &cfg; + memset (c, 0, sizeof (*c)); + c->id = id; c->name = name; c->handler = handler; diff --git a/src/vlibmemory/memory_vlib.c b/src/vlibmemory/memory_vlib.c index 1d40bcb791f..69f35d720d3 100644 --- a/src/vlibmemory/memory_vlib.c +++ b/src/vlibmemory/memory_vlib.c @@ -347,6 +347,8 @@ memory_api_init (char *region_name) vl_msg_api_msg_config_t cfg; vl_msg_api_msg_config_t *c = &cfg; + memset (c, 0, sizeof (*c)); + if ((rv = vl_map_shmem (region_name, 1 /* is_vlib */ )) < 0) return rv; @@ -360,6 +362,7 @@ memory_api_init (char *region_name) c->size = sizeof(vl_api_##n##_t); \ c->traced = 1; /* trace, so these msgs print */ \ c->replay = 0; /* don't replay client create/delete msgs */ \ + c->message_bounce = 0; /* don't bounce this message */ \ vl_msg_api_config(c);} while (0); foreach_vlib_api_msg;