This is an automated email from the ASF dual-hosted git repository.

sudheerv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 3db3932  Add protection against null pointer access
3db3932 is described below

commit 3db39328b277c9cb7e21103bdcfdae4b22715f83
Author: Sudheer Vinukonda <sudhe...@apache.org>
AuthorDate: Wed Aug 7 10:11:15 2019 -0700

    Add protection against null pointer access
    
    Unmapped URLs are not initialized for short-circuited requests before remap 
as
    pristine url is not set until remap. Add protection against null pointer 
access.
---
 proxy/logging/LogAccess.cc | 8 ++++----
 proxy/logging/LogFilter.cc | 4 +++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/proxy/logging/LogAccess.cc b/proxy/logging/LogAccess.cc
index ec8d781..d364e30 100644
--- a/proxy/logging/LogAccess.cc
+++ b/proxy/logging/LogAccess.cc
@@ -1159,7 +1159,7 @@ LogAccess::set_client_req_url_canon(char *buf, int len)
 void
 LogAccess::set_client_req_unmapped_url_canon(char *buf, int len)
 {
-  if (buf) {
+  if (buf && m_client_req_unmapped_url_canon_str) {
     m_client_req_unmapped_url_canon_len = len;
     ink_strlcpy(m_client_req_unmapped_url_canon_str, buf, 
m_client_req_unmapped_url_canon_len + 1);
   }
@@ -1168,7 +1168,7 @@ LogAccess::set_client_req_unmapped_url_canon(char *buf, 
int len)
 void
 LogAccess::set_client_req_unmapped_url_path(char *buf, int len)
 {
-  if (buf) {
+  if (buf && m_client_req_unmapped_url_path_str) {
     m_client_req_unmapped_url_path_len = len;
     ink_strlcpy(m_client_req_unmapped_url_path_str, buf, 
m_client_req_unmapped_url_path_len + 1);
   }
@@ -1177,7 +1177,7 @@ LogAccess::set_client_req_unmapped_url_path(char *buf, 
int len)
 void
 LogAccess::set_client_req_unmapped_url_host(char *buf, int len)
 {
-  if (buf) {
+  if (buf && m_client_req_unmapped_url_host_str) {
     m_client_req_unmapped_url_host_len = len;
     ink_strlcpy(m_client_req_unmapped_url_host_str, buf, 
m_client_req_unmapped_url_host_len + 1);
   }
@@ -1187,7 +1187,7 @@ void
 LogAccess::set_client_req_url_path(char *buf, int len)
 {
   //?? use m_client_req_unmapped_url_path_str for now..may need to enhance 
later..
-  if (buf) {
+  if (buf && m_client_req_unmapped_url_path_str) {
     m_client_req_url_path_len = len;
     ink_strlcpy(m_client_req_unmapped_url_path_str, buf, 
m_client_req_url_path_len + 1);
   }
diff --git a/proxy/logging/LogFilter.cc b/proxy/logging/LogFilter.cc
index 4bdec48..6091bd5 100644
--- a/proxy/logging/LogFilter.cc
+++ b/proxy/logging/LogFilter.cc
@@ -366,7 +366,9 @@ LogFilterString::wipe_this_entry(LogAccess *lad)
     ink_assert(!"INVALID FILTER OPERATOR");
   }
 
-  m_field->updateField(lad, buf, strlen(buf));
+  if (cond_satisfied) {
+    m_field->updateField(lad, buf, strlen(buf));
+  }
 
   ats_free(big_buf);
   ats_free(big_buf_upper);

Reply via email to