diff options
author | Dmitry Volyntsev <xeioex@nginx.com> | 2019-02-25 19:00:54 +0300 |
---|---|---|
committer | Dmitry Volyntsev <xeioex@nginx.com> | 2019-02-25 19:00:54 +0300 |
commit | 2e99236ae6b4c970816b1abd52eec8c78202527d (patch) | |
tree | d1888cb11a0406dce497497fd544ed54b21fe233 /nginx/ngx_http_js_module.c | |
parent | 67c14a0a3d77e4ff2fbe59fabca3a01f65b2bf16 (diff) | |
download | njs-2e99236ae6b4c970816b1abd52eec8c78202527d.tar.gz njs-2e99236ae6b4c970816b1abd52eec8c78202527d.zip |
HTTP: setting exception if memory allocation fails.
Diffstat (limited to 'nginx/ngx_http_js_module.c')
-rw-r--r-- | nginx/ngx_http_js_module.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index ff6a5943..b0ac8471 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -1657,6 +1657,7 @@ ngx_http_js_ext_set_variable(njs_vm_t *vm, void *obj, uintptr_t data, if (v->set_handler != NULL) { vv = ngx_pcalloc(r->pool, sizeof(ngx_http_variable_value_t)); if (vv == NULL) { + njs_vm_error(vm, "internal error"); return NJS_ERROR; } @@ -1682,6 +1683,7 @@ ngx_http_js_ext_set_variable(njs_vm_t *vm, void *obj, uintptr_t data, vv->data = ngx_pnalloc(r->pool, value->length); if (vv->data == NULL) { + njs_vm_error(vm, "internal error"); return NJS_ERROR; } @@ -1864,19 +1866,19 @@ ngx_http_js_ext_subrequest(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, if (has_body) { rb = ngx_pcalloc(r->pool, sizeof(ngx_http_request_body_t)); if (rb == NULL) { - return NJS_ERROR; + goto memory_error; } rb->bufs = ngx_alloc_chain_link(r->pool); if (rb->bufs == NULL) { - return NJS_ERROR; + goto memory_error; } rb->bufs->next = NULL; rb->bufs->buf = ngx_calloc_buf(r->pool); if (rb->bufs->buf == NULL) { - return NJS_ERROR; + goto memory_error; } rb->bufs->buf->memory = 1; @@ -1891,6 +1893,12 @@ ngx_http_js_ext_subrequest(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, } return NJS_OK; + +memory_error: + + njs_vm_error(ctx->vm, "internal error"); + + return NJS_ERROR; } |