diff options
author | Dave Barach <dave@barachs.net> | 2017-01-05 10:08:52 -0500 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2017-01-05 17:03:15 +0000 |
commit | 0691d6e9ff4388dc85e150c40bbc877bb74c02b1 (patch) | |
tree | 2f7339ce94bc07bdf9179f7bf18972a9bcf6f6f7 | |
parent | c0790cfef0bd1c56f4c75dc4f959584148386258 (diff) |
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 <dave@barachs.net>
-rw-r--r-- | src/vlibapi/api_shared.c | 2 | ||||
-rw-r--r-- | src/vlibmemory/memory_vlib.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/vlibapi/api_shared.c b/src/vlibapi/api_shared.c index 6a04fac9..18067d1d 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 1d40bcb7..69f35d72 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; |