diff options
Diffstat (limited to 'src/http/modules/perl/ngx_http_perl_module.c')
-rw-r--r-- | src/http/modules/perl/ngx_http_perl_module.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c index 0a982e6e4..0bcad5ccb 100644 --- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c @@ -692,10 +692,18 @@ ngx_http_perl_call_handler(pTHX_ ngx_http_request_t *r, SV *sub, static void ngx_http_perl_eval_anon_sub(pTHX_ ngx_str_t *handler, SV **sv) { - if (ngx_strncmp(handler->data, "sub ", 4) == 0 - || ngx_strncmp(handler->data, "use ", 4) == 0) + u_char *p; + + for (p = handler->data; *p; p++) { + if (*p != ' ' && *p != '\t' && *p != CR && *p != LF) { + break; + } + } + + if (ngx_strncmp(p, "sub ", 4) == 0 + || ngx_strncmp(p, "use ", 4) == 0) { - *sv = eval_pv((char *) handler->data, FALSE); + *sv = eval_pv((char *) p, FALSE); return; } |