aboutsummaryrefslogtreecommitdiff
path: root/nginx/ngx_http_js_module.c
diff options
context:
space:
mode:
authorDmitry Volyntsev <xeioex@nginx.com>2019-02-25 19:00:54 +0300
committerDmitry Volyntsev <xeioex@nginx.com>2019-02-25 19:00:54 +0300
commit2e99236ae6b4c970816b1abd52eec8c78202527d (patch)
treed1888cb11a0406dce497497fd544ed54b21fe233 /nginx/ngx_http_js_module.c
parent67c14a0a3d77e4ff2fbe59fabca3a01f65b2bf16 (diff)
downloadnjs-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.c14
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;
}