summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/perl/nxt_perl_psgi.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/perl/nxt_perl_psgi.c b/src/perl/nxt_perl_psgi.c
index 5e8d1aee..807d1741 100644
--- a/src/perl/nxt_perl_psgi.c
+++ b/src/perl/nxt_perl_psgi.c
@@ -267,8 +267,11 @@ XS(XS_NGINX__Unit__Sandbox_cb)
XSRETURN_EMPTY;
}
+ pctx = CvXSUBANY(cv).any_ptr;
+
if (nxt_slow_path(SvOK(ST(0)) == 0 || SvROK(ST(0)) == 0
- || SvTYPE(SvRV(ST(0))) != SVt_PVAV))
+ || SvTYPE(SvRV(ST(0))) != SVt_PVAV
+ || pctx->req == NULL))
{
nxt_perl_psgi_cb_request_done(CvXSUBANY(cv).any_ptr, NXT_UNIT_ERROR);
@@ -278,8 +281,6 @@ XS(XS_NGINX__Unit__Sandbox_cb)
XSRETURN_EMPTY;
}
- pctx = CvXSUBANY(cv).any_ptr;
-
rc = nxt_perl_psgi_result_array(PERL_GET_CONTEXT, ST(0), pctx->req);
if (nxt_slow_path(rc != NXT_UNIT_OK)) {
nxt_perl_psgi_cb_request_done(CvXSUBANY(cv).any_ptr, NXT_UNIT_ERROR);