This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.1.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/9.1.x by this push:
new 23e7a04 Don't call next next dup on destroyed mime field mloc. (#7833)
23e7a04 is described below
commit 23e7a04b2ab4690b61283b958026de34a0620dc0
Author: Walt Karas <[email protected]>
AuthorDate: Fri May 14 11:02:46 2021 -0500
Don't call next next dup on destroyed mime field mloc. (#7833)
plugins/background_fetch/headers.cc
plugins/cache_range_requests/cache_range_requests.cc
plugins/experimental/access_control/headers.cc
plugins/experimental/cache_fill/background_fetch.cc
plugins/header_rewrite/operators.cc
plugins/prefetch/headers.cc
(cherry picked from commit dc10eae8a85e9b1c3436d15bb97219e98b41d42e)
---
plugins/background_fetch/headers.cc | 2 +-
plugins/cache_range_requests/cache_range_requests.cc | 2 +-
plugins/experimental/access_control/headers.cc | 2 +-
plugins/experimental/cache_fill/background_fetch.cc | 2 +-
plugins/header_rewrite/operators.cc | 2 +-
plugins/prefetch/headers.cc | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/plugins/background_fetch/headers.cc
b/plugins/background_fetch/headers.cc
index 4317d9d..a134187 100644
--- a/plugins/background_fetch/headers.cc
+++ b/plugins/background_fetch/headers.cc
@@ -75,6 +75,7 @@ set_header(TSMBuffer bufp, TSMLoc hdr_loc, const char
*header, int len, const ch
bool first = true;
while (field_loc) {
+ tmp = TSMimeHdrFieldNextDup(bufp, hdr_loc, field_loc);
if (first) {
first = false;
if (TS_SUCCESS == TSMimeHdrFieldValueStringSet(bufp, hdr_loc,
field_loc, -1, val, val_len)) {
@@ -83,7 +84,6 @@ set_header(TSMBuffer bufp, TSMLoc hdr_loc, const char
*header, int len, const ch
} else {
TSMimeHdrFieldDestroy(bufp, hdr_loc, field_loc);
}
- tmp = TSMimeHdrFieldNextDup(bufp, hdr_loc, field_loc);
TSHandleMLocRelease(bufp, hdr_loc, field_loc);
field_loc = tmp;
}
diff --git a/plugins/cache_range_requests/cache_range_requests.cc
b/plugins/cache_range_requests/cache_range_requests.cc
index cf2e04f..5b43d45 100644
--- a/plugins/cache_range_requests/cache_range_requests.cc
+++ b/plugins/cache_range_requests/cache_range_requests.cc
@@ -433,6 +433,7 @@ set_header(TSMBuffer buf, TSMLoc hdr_loc, const char
*header, int len, const cha
bool first = true;
while (field_loc) {
+ tmp = TSMimeHdrFieldNextDup(buf, hdr_loc, field_loc);
if (first) {
first = false;
if (TS_SUCCESS == TSMimeHdrFieldValueStringSet(buf, hdr_loc,
field_loc, -1, val, val_len)) {
@@ -441,7 +442,6 @@ set_header(TSMBuffer buf, TSMLoc hdr_loc, const char
*header, int len, const cha
} else {
TSMimeHdrFieldDestroy(buf, hdr_loc, field_loc);
}
- tmp = TSMimeHdrFieldNextDup(buf, hdr_loc, field_loc);
TSHandleMLocRelease(buf, hdr_loc, field_loc);
field_loc = tmp;
}
diff --git a/plugins/experimental/access_control/headers.cc
b/plugins/experimental/access_control/headers.cc
index a22e0ff..1d5089b 100644
--- a/plugins/experimental/access_control/headers.cc
+++ b/plugins/experimental/access_control/headers.cc
@@ -156,6 +156,7 @@ setHeader(TSMBuffer bufp, TSMLoc hdrLoc, const char
*header, int headerlen, cons
bool first = true;
while (fieldLoc) {
+ tmp = TSMimeHdrFieldNextDup(bufp, hdrLoc, fieldLoc);
if (first) {
first = false;
if (TS_SUCCESS == TSMimeHdrFieldValueStringSet(bufp, hdrLoc, fieldLoc,
-1, value, valuelen)) {
@@ -164,7 +165,6 @@ setHeader(TSMBuffer bufp, TSMLoc hdrLoc, const char
*header, int headerlen, cons
} else {
TSMimeHdrFieldDestroy(bufp, hdrLoc, fieldLoc);
}
- tmp = TSMimeHdrFieldNextDup(bufp, hdrLoc, fieldLoc);
TSHandleMLocRelease(bufp, hdrLoc, fieldLoc);
fieldLoc = tmp;
}
diff --git a/plugins/experimental/cache_fill/background_fetch.cc
b/plugins/experimental/cache_fill/background_fetch.cc
index 99857e8..ba74907 100644
--- a/plugins/experimental/cache_fill/background_fetch.cc
+++ b/plugins/experimental/cache_fill/background_fetch.cc
@@ -68,6 +68,7 @@ set_header(TSMBuffer bufp, TSMLoc hdr_loc, const char
*header, int len, const ch
bool first = true;
while (field_loc) {
+ tmp = TSMimeHdrFieldNextDup(bufp, hdr_loc, field_loc);
if (first) {
first = false;
if (TS_SUCCESS == TSMimeHdrFieldValueStringSet(bufp, hdr_loc,
field_loc, -1, val, val_len)) {
@@ -76,7 +77,6 @@ set_header(TSMBuffer bufp, TSMLoc hdr_loc, const char
*header, int len, const ch
} else {
TSMimeHdrFieldDestroy(bufp, hdr_loc, field_loc);
}
- tmp = TSMimeHdrFieldNextDup(bufp, hdr_loc, field_loc);
TSHandleMLocRelease(bufp, hdr_loc, field_loc);
field_loc = tmp;
}
diff --git a/plugins/header_rewrite/operators.cc
b/plugins/header_rewrite/operators.cc
index f0cd8b4..bbd6f52 100644
--- a/plugins/header_rewrite/operators.cc
+++ b/plugins/header_rewrite/operators.cc
@@ -602,6 +602,7 @@ OperatorSetHeader::exec(const Resources &res) const
bool first = true;
while (field_loc) {
+ tmp = TSMimeHdrFieldNextDup(res.bufp, res.hdr_loc, field_loc);
if (first) {
first = false;
if (TS_SUCCESS == TSMimeHdrFieldValueStringSet(res.bufp,
res.hdr_loc, field_loc, -1, value.c_str(), value.size())) {
@@ -610,7 +611,6 @@ OperatorSetHeader::exec(const Resources &res) const
} else {
TSMimeHdrFieldDestroy(res.bufp, res.hdr_loc, field_loc);
}
- tmp = TSMimeHdrFieldNextDup(res.bufp, res.hdr_loc, field_loc);
TSHandleMLocRelease(res.bufp, res.hdr_loc, field_loc);
field_loc = tmp;
}
diff --git a/plugins/prefetch/headers.cc b/plugins/prefetch/headers.cc
index fbfe732..c1e7a13 100644
--- a/plugins/prefetch/headers.cc
+++ b/plugins/prefetch/headers.cc
@@ -156,6 +156,7 @@ setHeader(TSMBuffer bufp, TSMLoc hdrLoc, const char
*header, int headerlen, cons
bool first = true;
while (fieldLoc) {
+ tmp = TSMimeHdrFieldNextDup(bufp, hdrLoc, fieldLoc);
if (first) {
first = false;
if (TS_SUCCESS == TSMimeHdrFieldValueStringSet(bufp, hdrLoc, fieldLoc,
-1, value, valuelen)) {
@@ -164,7 +165,6 @@ setHeader(TSMBuffer bufp, TSMLoc hdrLoc, const char
*header, int headerlen, cons
} else {
TSMimeHdrFieldDestroy(bufp, hdrLoc, fieldLoc);
}
- tmp = TSMimeHdrFieldNextDup(bufp, hdrLoc, fieldLoc);
TSHandleMLocRelease(bufp, hdrLoc, fieldLoc);
fieldLoc = tmp;
}