You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by br...@apache.org on 2015/07/29 04:43:44 UTC

trafficserver git commit: TS-3803: CID 1313322 CID 1313322: HostDB memory issues (introduced in TS-3800)

Repository: trafficserver
Updated Branches:
  refs/heads/master ec7479243 -> 0cd1ef3ed


TS-3803: CID 1313322 CID 1313322: HostDB memory issues (introduced in TS-3800)


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

Branch: refs/heads/master
Commit: 0cd1ef3ed5e4e6e3a332bccdd07220be717f2226
Parents: ec74792
Author: Brian Geffon <br...@apache.org>
Authored: Tue Jul 28 19:43:35 2015 -0700
Committer: Brian Geffon <br...@apache.org>
Committed: Tue Jul 28 19:43:35 2015 -0700

----------------------------------------------------------------------
 iocore/hostdb/HostDB.cc | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0cd1ef3e/iocore/hostdb/HostDB.cc
----------------------------------------------------------------------
diff --git a/iocore/hostdb/HostDB.cc b/iocore/hostdb/HostDB.cc
index 5a9c85a..0d36fd6 100644
--- a/iocore/hostdb/HostDB.cc
+++ b/iocore/hostdb/HostDB.cc
@@ -1365,10 +1365,18 @@ HostDBContinuation::lookup_done(IpAddr const &ip, char const *aname, bool around
     }
   }
 
-  const size_t s_size = strlen(aname) + 1;
-  void *host_dest = hostDB.alloc(&i->hostname_offset, s_size);
-  ink_strlcpy((char *)host_dest, aname, s_size);
-  *((char *)host_dest + s_size) = '\0';
+  if (aname) {
+    const size_t s_size = strlen(aname) + 1;
+    void *host_dest = hostDB.alloc(&i->hostname_offset, s_size);
+    if (host_dest) {
+      ink_strlcpy((char *)host_dest, aname, s_size);
+      *((char *)host_dest + s_size) = '\0';
+    } else {
+      Warning("Out of room in hostdb for hostname (data area full!)");
+      hostDB.delete_block(i);
+      return NULL;
+    }
+  }
 
   if (from_cont)
     do_put_response(from, i, from_cont);