apr_cpystrn(buffer, ctx->p_server_uri, sizeof(buffer));
buffer_len = ctx->psu_len;
}
- if (need_len > sizeof(buffer)) {
- ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, ctx->r, APLOGNO(03482)
- "link_reverse_map uri too long, skipped: %s", ctx->s);
- return;
- }
+ if (need_len > sizeof(buffer))
+ goto out;
apr_cpystrn(buffer + buffer_len, ctx->s + ctx->link_start, link_len + 1);
if (!prepend_p_server
&& strcmp(ctx->real_backend_uri, ctx->p_server_uri)
* to work, we need to use the proxy uri */
int path_start = ctx->link_start + ctx->rbu_len;
link_len -= ctx->rbu_len;
+ need_len = ctx->psu_len + link_len;
+ if (need_len > sizeof(buffer))
+ goto out;
memcpy(buffer, ctx->p_server_uri, ctx->psu_len);
memcpy(buffer + ctx->psu_len, ctx->s + path_start, link_len);
buffer_len = ctx->psu_len + link_len;
}
subst_str(ctx, ctx->link_start, ctx->link_end, mapped);
}
+out:
+ if (need_len > sizeof(buffer)) {
+ ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, ctx->r, APLOGNO(03482)
+ "link_reverse_map uri too long, skipped: %s", ctx->s);
+ }
}
}