You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2016/07/13 12:40:25 UTC
svn commit: r1752415 - /httpd/httpd/trunk/modules/filters/mod_include.c
Author: covener
Date: Wed Jul 13 12:40:25 2016
New Revision: 1752415
URL: http://svn.apache.org/viewvc?rev=1752415&view=rev
Log:
PR59844: stack-allocated ap_expr_info_t returned from mod_include
Modified:
httpd/httpd/trunk/modules/filters/mod_include.c
Modified: httpd/httpd/trunk/modules/filters/mod_include.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/mod_include.c?rev=1752415&r1=1752414&r2=1752415&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/filters/mod_include.c (original)
+++ httpd/httpd/trunk/modules/filters/mod_include.c Wed Jul 13 12:40:25 2016
@@ -1589,17 +1589,17 @@ static int parse_expr(include_ctx_t *ctx
/* same as above, but use common ap_expr syntax / API */
static int parse_ap_expr(include_ctx_t *ctx, const char *expr, int *was_error)
{
- ap_expr_info_t expr_info;
+ ap_expr_info_t *expr_info = apr_pcalloc(ctx->pool, sizeof (*expr_info));
const char *err;
int ret;
backref_t *re = ctx->intern->re;
ap_expr_eval_ctx_t *eval_ctx = ctx->intern->expr_eval_ctx;
- expr_info.filename = ctx->r->filename;
- expr_info.line_number = 0;
- expr_info.module_index = APLOG_MODULE_INDEX;
- expr_info.flags = AP_EXPR_FLAG_RESTRICTED;
- err = ap_expr_parse(ctx->r->pool, ctx->r->pool, &expr_info, expr,
+ expr_info->filename = ctx->r->filename;
+ expr_info->line_number = 0;
+ expr_info->module_index = APLOG_MODULE_INDEX;
+ expr_info->flags = AP_EXPR_FLAG_RESTRICTED;
+ err = ap_expr_parse(ctx->r->pool, ctx->r->pool, expr_info, expr,
include_expr_lookup);
if (err) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, ctx->r, APLOGNO(01337)
@@ -1635,7 +1635,7 @@ static int parse_ap_expr(include_ctx_t *
eval_ctx->re_source = &re->source;
}
- eval_ctx->info = &expr_info;
+ eval_ctx->info = expr_info;
ret = ap_expr_exec_ctx(eval_ctx);
if (ret < 0) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, ctx->r, APLOGNO(01338)