You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bc...@apache.org on 2014/05/30 23:04:54 UTC
[22/50] [abbrv] git commit: TS-2618] IOBufferBlock::realloc()'s
bounds check is wrong.
TS-2618] IOBufferBlock::realloc()'s bounds check is wrong.
Original suggestions from William Bardwell.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/3e35848d
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/3e35848d
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/3e35848d
Branch: refs/heads/5.0.x
Commit: 3e35848dc793aec663d03faa56080c7d03d6fd9b
Parents: 92de605
Author: Leif Hedstrom <zw...@apache.org>
Authored: Wed May 28 09:34:46 2014 -0600
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Wed May 28 09:35:35 2014 -0600
----------------------------------------------------------------------
CHANGES | 2 ++
iocore/eventsystem/P_IOBuffer.h | 5 ++---
2 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/3e35848d/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 7e85d7f..2dbba8a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 5.0.0
+ *) [TS-2618] IOBufferBlock::realloc()'s bounds check is wrong.
+
*) [TS-2850] Fix logging of response header length.
*) [TS-2839] tsxs does not work on OSX (Darwin).
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/3e35848d/iocore/eventsystem/P_IOBuffer.h
----------------------------------------------------------------------
diff --git a/iocore/eventsystem/P_IOBuffer.h b/iocore/eventsystem/P_IOBuffer.h
index 20e1405..55b8add 100644
--- a/iocore/eventsystem/P_IOBuffer.h
+++ b/iocore/eventsystem/P_IOBuffer.h
@@ -530,10 +530,9 @@ IOBufferBlock::realloc_xmalloc(int64_t buf_size)
TS_INLINE void
IOBufferBlock::realloc(int64_t i)
{
- if (i == data->_size_index)
- return;
- if (i >= (int64_t) sizeof(ioBufAllocator))
+ if ((i == data->_size_index) || (i >= (int64_t)countof(ioBufAllocator))) {
return;
+ }
ink_release_assert(i > data->_size_index && i != BUFFER_SIZE_NOT_ALLOCATED);
void *b = ioBufAllocator[i].alloc_void();