TS-4118: CID 1347871: Add error handling in HPACK_Encode (cherry picked from commit 96b4d52015549e211d1b2ee9d5c773f18f408153)
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5c0812b6 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5c0812b6 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5c0812b6 Branch: refs/heads/6.1.x Commit: 5c0812b6a924ab308be39c8401a713ed15472501 Parents: 9c75b1e Author: Masaori Koshiba <[email protected]> Authored: Tue Jan 12 10:07:56 2016 +0900 Committer: Leif Hedstrom <[email protected]> Committed: Thu Jan 14 18:15:22 2016 -0700 ---------------------------------------------------------------------- proxy/http2/RegressionHPACK.cc | 5 +++++ 1 file changed, 5 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5c0812b6/proxy/http2/RegressionHPACK.cc ---------------------------------------------------------------------- diff --git a/proxy/http2/RegressionHPACK.cc b/proxy/http2/RegressionHPACK.cc index e8826ff..f10b25e 100644 --- a/proxy/http2/RegressionHPACK.cc +++ b/proxy/http2/RegressionHPACK.cc @@ -423,6 +423,11 @@ REGRESSION_TEST(HPACK_Encode)(RegressionTest *t, int, int *pstatus) int64_t len = http2_write_psuedo_headers(headers, buf, buf_len, indexing_table); buf_len -= len; + if (len < 0) { + box.check(false, "http2_write_psuedo_headers returned negative value: %d", len); + break; + } + MIMEFieldIter field_iter; bool cont = false; len += http2_write_header_fragment(headers, field_iter, buf + len, buf_len, indexing_table, cont);
