[njs] HTTP: fixed r.subrequest() check for nested subrequests.

noreply at nginx.com noreply at nginx.com
Wed Sep 18 04:53:02 UTC 2024


details:   https://github.com/nginx/njs/commit/c2bc8c6501b1712f75ea6a82a153383d3d3d2017
branches:  master
commit:    c2bc8c6501b1712f75ea6a82a153383d3d3d2017
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Tue, 17 Sep 2024 19:17:09 -0700
description:
HTTP: fixed r.subrequest() check for nested subrequests.

The issue was introduced in a14be61c86 (0.8.5).

This fixes #783 on Github.

---
 nginx/ngx_http_js_module.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c
index 4a50a949..dec65198 100644
--- a/nginx/ngx_http_js_module.c
+++ b/nginx/ngx_http_js_module.c
@@ -3358,7 +3358,7 @@ ngx_http_js_ext_subrequest(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
     ctx = ngx_http_get_module_ctx(r, ngx_http_js_module);
 
-    if (r->main != r) {
+    if (r->subrequest_in_memory) {
         njs_vm_error(vm, "subrequest can only be created for "
                          "the primary request");
         return NJS_ERROR;
@@ -5722,7 +5722,7 @@ ngx_http_qjs_ext_subrequest(JSContext *cx, JSValueConst this_val,
 
     ctx = ngx_http_get_module_ctx(r, ngx_http_js_module);
 
-    if (r->main != r) {
+    if (r->subrequest_in_memory) {
         return JS_ThrowTypeError(cx, "subrequest can only be created for "
                                      "the primary request");
     }


More information about the nginx-devel mailing list