diff options
author | Zhidao HONG <z.hong@f5.com> | 2023-01-30 11:16:01 +0800 |
---|---|---|
committer | Zhidao HONG <z.hong@f5.com> | 2023-01-30 11:16:01 +0800 |
commit | 1f37d8121a3dfc2f039b859835c4ec22e77f01c9 (patch) | |
tree | b430de5baaf62bcbdaf6708dc54ba08809857f01 /src/nxt_conf_validation.c | |
parent | b2d19155787e7dd85f0a915bb74d4c9aa2cd91d6 (diff) | |
download | unit-1f37d8121a3dfc2f039b859835c4ec22e77f01c9.tar.gz unit-1f37d8121a3dfc2f039b859835c4ec22e77f01c9.tar.bz2 |
NJS: adding the missing vm destruction.
This commit fixed the njs memory leak happened in the config validation, updating and http requests.
Diffstat (limited to '')
-rw-r--r-- | src/nxt_conf_validation.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/nxt_conf_validation.c b/src/nxt_conf_validation.c index bf8aa760..537a3fb7 100644 --- a/src/nxt_conf_validation.c +++ b/src/nxt_conf_validation.c @@ -1284,25 +1284,35 @@ nxt_conf_validate(nxt_conf_validation_t *vldt) vldt->tstr_state = nxt_tstr_state_new(vldt->pool, 1); if (nxt_slow_path(vldt->tstr_state == NULL)) { - return NXT_ERROR; + ret = NXT_ERROR; + goto fail; } ret = nxt_conf_vldt_type(vldt, NULL, vldt->conf, NXT_CONF_VLDT_OBJECT); if (ret != NXT_OK) { - return ret; + goto fail; } ret = nxt_conf_vldt_object(vldt, vldt->conf, nxt_conf_vldt_root_members); if (ret != NXT_OK) { - return ret; + goto fail; } ret = nxt_tstr_state_done(vldt->tstr_state, error); if (ret != NXT_OK) { - return nxt_conf_vldt_error(vldt, "%s", error); + ret = nxt_conf_vldt_error(vldt, "%s", error); + goto fail; } + nxt_tstr_state_release(vldt->tstr_state); + return NXT_OK; + +fail: + + nxt_tstr_state_release(vldt->tstr_state); + + return ret; } |