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 | 789762ff3d88a1c006babc7a8e7037e0976ad70f (patch) | |
tree | 4988386a1644bbbe9f8f3c98c29430fdd71f74d9 /src/nxt_conf_validation.c | |
parent | cbc01907fef6a028f02d9051b909def920c49f24 (diff) | |
download | unit-789762ff3d88a1c006babc7a8e7037e0976ad70f.tar.gz unit-789762ff3d88a1c006babc7a8e7037e0976ad70f.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 'src/nxt_conf_validation.c')
-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; } |