diff options
author | Dave Barach <dave@barachs.net> | 2017-01-05 10:01:41 -0500 |
---|---|---|
committer | Dave Barach <dave@barachs.net> | 2017-01-05 10:04:30 -0500 |
commit | b95a916dc335096257ed2fbdd913d4ac44471308 (patch) | |
tree | 6d3a06a5857404de95e21a662ffc627361d10c6b /vlib-api | |
parent | 235c64f0678165a2cddee67514052d4bc2bedadb (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.
Change-Id: I11084dd884622e7b44bdabb922466c4d07138235
Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'vlib-api')
-rw-r--r-- | vlib-api/vlibapi/api_shared.c | 2 | ||||
-rw-r--r-- | vlib-api/vlibmemory/memory_vlib.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/vlib-api/vlibapi/api_shared.c b/vlib-api/vlibapi/api_shared.c index 6a04fac92f4..18067d1d85e 100644 --- a/vlib-api/vlibapi/api_shared.c +++ b/vlib-api/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/vlib-api/vlibmemory/memory_vlib.c b/vlib-api/vlibmemory/memory_vlib.c index 1d40bcb791f..69f35d720d3 100644 --- a/vlib-api/vlibmemory/memory_vlib.c +++ b/vlib-api/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; |