This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 86e2340363317d96eecee4e14d4cde693795966a 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) Conflicts: plugins/experimental/cache_fill/background_fetch.cc Which does not exist in 9.0.x. --- plugins/background_fetch/headers.cc | 2 +- plugins/cache_range_requests/cache_range_requests.cc | 2 +- plugins/experimental/access_control/headers.cc | 2 +- plugins/header_rewrite/operators.cc | 2 +- plugins/prefetch/headers.cc | 2 +- 5 files changed, 5 insertions(+), 5 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 ddc64e4..2644eaa 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/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; }
