On Nov 5, 2013, at 1:37 PM, bc...@apache.org wrote: > Updated Branches: > refs/heads/master ab996456f -> 5ad8eabdf > > > TS-2320: TSRedirectUrlSet truncates host header in redirected request > Updated to memcpy based on James Peach's recomendation > Also, saw a problem with malloc and sizeof when switching the code to only > use alloca. Using a variable length array all the time now.
Nice! > > > Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo > Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5ad8eabd > Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5ad8eabd > Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5ad8eabd > > Branch: refs/heads/master > Commit: 5ad8eabdf87d465e13791c8451591cf0d986e760 > Parents: ab99645 > Author: Bryan Call <bc...@apache.org> > Authored: Tue Nov 5 13:35:08 2013 -0800 > Committer: Bryan Call <bc...@apache.org> > Committed: Tue Nov 5 13:35:08 2013 -0800 > > ---------------------------------------------------------------------- > proxy/http/HttpSM.cc | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5ad8eabd/proxy/http/HttpSM.cc > ---------------------------------------------------------------------- > diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc > index 06f6096..e5751a0 100644 > --- a/proxy/http/HttpSM.cc > +++ b/proxy/http/HttpSM.cc > @@ -7393,17 +7393,11 @@ HttpSM::redirect_request(const char *redirect_url, > const int redirect_len) > > if (host != NULL) { > int port = clientUrl.port_get(); > -#if defined(__GNUC__) > char buf[host_len + 7]; > -#else > - char *buf = (char *)ats_malloc(host_len + 7); > -#endif > - ink_strlcpy(buf, host, host_len+1); > + > + memcpy(buf, host, host_len); > host_len += snprintf(buf + host_len, sizeof(buf) - host_len, ":%d", > port); > t_state.hdr_info.client_request.value_set(MIME_FIELD_HOST, > MIME_LEN_HOST, buf, host_len); > -#if !defined(__GNUC__) > - ats_free(buf); > -#endif > } else { > // the client request didn't have a host, so remove it from the headers > t_state.hdr_info.client_request.field_delete(MIME_FIELD_HOST, > MIME_LEN_HOST); >