TS-2463] Crash regression around slow-log feature

This happens when logging a slow event, and fixes commit c290ce0df2a.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5cc64bf4
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5cc64bf4
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5cc64bf4

Branch: refs/heads/5.0.x
Commit: 5cc64bf4552f331d115ce595f8f28202fb4c455e
Parents: 1018957
Author: Leif Hedstrom <zw...@apache.org>
Authored: Tue Dec 31 11:01:39 2013 -0700
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Tue Dec 31 11:01:39 2013 -0700

----------------------------------------------------------------------
 CHANGES              | 6 ++++--
 proxy/hdrs/HTTP.cc   | 9 +++++++--
 proxy/http/HttpSM.cc | 4 +++-
 3 files changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5cc64bf4/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 168a087..96b7ba8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 4.2.0
 
-  *) [TS-32] Fix ICP.
-   Author: Gota Adachi <a...@iij.ad.jp>
+  *) [TS-2463] Crash regression around slow-log feature, when logging an
+   event. This fixes commit c290ce0df2a.
+
+  *) [TS-32] Fix ICP. Author: Gota Adachi <a...@iij.ad.jp>
 
   *) [TS-2248] Segmentation fault in HttpTunnel with flow control.
    Author: bettydramit <b13621367...@gmail.com>.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5cc64bf4/proxy/hdrs/HTTP.cc
----------------------------------------------------------------------
diff --git a/proxy/hdrs/HTTP.cc b/proxy/hdrs/HTTP.cc
index 6ecaf35..b9b8dc6 100644
--- a/proxy/hdrs/HTTP.cc
+++ b/proxy/hdrs/HTTP.cc
@@ -1576,7 +1576,8 @@ class UrlPrintHack {
 };
 
 char*
-HTTPHdr::url_string_get(Arena* arena, int* length) {
+HTTPHdr::url_string_get(Arena* arena, int* length)
+{
   char* zret = 0;
   UrlPrintHack hack(this);
 
@@ -1594,7 +1595,11 @@ HTTPHdr::url_string_get(Arena* arena, int* length) {
 }
 
 int
-HTTPHdr::url_print(char* buff, int length, int* offset, int* skip) {
+HTTPHdr::url_print(char* buff, int length, int* offset, int* skip)
+{
+  ink_release_assert(offset);
+  ink_release_assert(skip);
+
   int zret = 0;
   UrlPrintHack hack(this);
   if (hack.is_valid()) {

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5cc64bf4/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index e224527..df9dac5 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -6596,8 +6596,10 @@ HttpSM::update_stats()
       ink_hrtime_from_msec(t_state.http_config_param->slow_log_threshold) < 
total_time) {
     URL* url = t_state.hdr_info.client_request.url_get();
     char url_string[256] = "";
+    int offset = 0;
+    int skip = 0;
 
-    t_state.hdr_info.client_request.url_print(url_string, sizeof url_string, 
0, 0);
+    t_state.hdr_info.client_request.url_print(url_string, sizeof url_string, 
&offset, &skip);
 
     // unique id
     char unique_id_string[128] = "";

Reply via email to