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 2015/11/20 01:40:17 UTC

trafficserver git commit: TS-3962: Fix Coverity CID #1325824

Repository: trafficserver
Updated Branches:
  refs/heads/6.0.x d48294335 -> f068e1736


TS-3962: Fix Coverity CID #1325824

(cherry picked from commit f9d63a4bf73cc1b84934d2db9010865a2d3fbf2a)


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

Branch: refs/heads/6.0.x
Commit: f068e17360addf6d0ea04c16a43a20391d4f0475
Parents: d482943
Author: Phil Sorber <so...@apache.org>
Authored: Sun Oct 11 16:01:39 2015 -0600
Committer: Bryan Call <bc...@apache.org>
Committed: Thu Nov 19 16:40:12 2015 -0800

----------------------------------------------------------------------
 lib/ts/ink_queue.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/f068e173/lib/ts/ink_queue.cc
----------------------------------------------------------------------
diff --git a/lib/ts/ink_queue.cc b/lib/ts/ink_queue.cc
index 8fa2902..04e49c6 100644
--- a/lib/ts/ink_queue.cc
+++ b/lib/ts/ink_queue.cc
@@ -345,16 +345,19 @@ ink_freelist_free_bulk(InkFreeList *f, void *head, void *tail, size_t num_item)
   ink_atomic_increment(&fastalloc_mem_in_use, -(int64_t)f->type_size * num_item);
 #else  /* !TS_USE_FREELIST */
   void *item = head;
+  void *next;
 
   // Avoid compiler warnings
   (void)tail;
 
   if (f->alignment) {
-    for (size_t i = 0; i < num_item && item; ++i, item = *(void **)item) {
+    for (size_t i = 0; i < num_item && item; ++i, item = next) {
+      next = *(void **)item; // find next item before freeing current item
       ats_memalign_free(item);
     }
   } else {
-    for (size_t i = 0; i < num_item && item; ++i, item = *(void **)item) {
+    for (size_t i = 0; i < num_item && item; ++i, item = next) {
+      next = *(void **)item; // find next item before freeing current item
       ats_free(item);
     }
   }