You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by James Peach <jp...@apache.org> on 2016/10/03 01:22:43 UTC

Re: [trafficserver] branch master updated: Fix possibility of NULL assignment to std::string

> On Oct 2, 2016, at 5:36 PM, sorber@apache.org wrote:
> 
> This is an automated email from the ASF dual-hosted git repository.
> 
> sorber pushed a commit to branch master
> in repository https://git-dual.apache.org/repos/asf/trafficserver.git
> 
> The following commit(s) were added to refs/heads/master by this push:
>       new  91bfe21   Fix possibility of NULL assignment to std::string
> 91bfe21 is described below
> 
> commit 91bfe214cc2356ae19b78776815d0344d1a0906d
> Author: Phil Sorber <so...@apache.org>
> AuthorDate: Sun Oct 2 18:18:35 2016 -0600
> 
>    Fix possibility of NULL assignment to std::string
> ---
> plugins/header_rewrite/expander.cc | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/plugins/header_rewrite/expander.cc b/plugins/header_rewrite/expander.cc
> index 22dca9c..c62a7d0 100644
> --- a/plugins/header_rewrite/expander.cc
> +++ b/plugins/header_rewrite/expander.cc
> @@ -67,7 +67,12 @@ VariableExpander::expand(const Resources &res)
>       // Protocol of the incoming request
>       if (TSHttpTxnPristineUrlGet(res.txnp, &bufp, &url_loc) == TS_SUCCESS) {
>         int len;
> -        resolved_variable = TSUrlSchemeGet(bufp, url_loc, &len);
> +        const char *tmp = TSUrlSchemeGet(bufp, url_loc, &len);
> +        if ((tmp != NULL) && (len > 0)) {
> +          resolved_variable.assign(tmp, len);
> +        } else {
> +          resolved_variable.assign("");
> +        }

FWIW every other place in this file does

if (tmp && len) {
	resolved_variable.assign(tmp, len);
}