diff options
author | Max Romanov <max.romanov@nginx.com> | 2018-09-19 19:24:56 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2018-09-19 19:24:56 +0300 |
commit | e964e982fd64505fb8644f91e5c57a869038cd18 (patch) | |
tree | 260c3199190e8f5b2891c54281fa3046e6b31a79 | |
parent | 5ef1352fae50c3ca746387914e5b594e8e6e33fc (diff) | |
download | unit-e964e982fd64505fb8644f91e5c57a869038cd18.tar.gz unit-e964e982fd64505fb8644f91e5c57a869038cd18.tar.bz2 |
Initializing application structure with 0 to avoid crash.
Attribute 'application' is optional in listener object. This commit adds
missing code to reset 'lscf' to avoid garbage and crash when the attribute
is absent.
Diffstat (limited to '')
-rw-r--r-- | src/nxt_router.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/nxt_router.c b/src/nxt_router.c index 8f820895..df5b7466 100644 --- a/src/nxt_router.c +++ b/src/nxt_router.c @@ -1545,6 +1545,8 @@ nxt_router_conf_create(nxt_task_t *task, nxt_router_temp_conf_t *tmcf, goto fail; } + nxt_memzero(&lscf, sizeof(lscf)); + ret = nxt_conf_map_object(mp, listener, nxt_router_listener_conf, nxt_nitems(nxt_router_listener_conf), &lscf); if (ret != NXT_OK) { @@ -1577,9 +1579,12 @@ nxt_router_conf_create(nxt_task_t *task, nxt_router_temp_conf_t *tmcf, skcf->listen->handler = nxt_http_conn_init; skcf->router_conf = tmcf->router_conf; skcf->router_conf->count++; - skcf->application = nxt_router_listener_application(tmcf, + + if (lscf.application.length > 0) { + skcf->application = nxt_router_listener_application(tmcf, &lscf.application); - nxt_router_app_use(task, skcf->application, 1); + nxt_router_app_use(task, skcf->application, 1); + } } value = nxt_conf_get_path(conf, &access_log_path); |