[
https://issues.apache.org/jira/browse/TS-3747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bryan Call updated TS-3747:
---------------------------
Description:
In the code that was failing before the fix, it was using the ascii code value
to determine if it was at a leaf node in the tree. This didn't work for the
charter '\0' since it wouldn't think it was a leaf node and would run off the
tree. The fix was to add a leaf node flag instead of using the ascii value.
{code}
#0 0x00000000006427d0 in huffman_decode (
dst_start=0x2af80db6756a "XXX", src_len=99) at HuffmanCodec.cc:373
#1 0x000000000064345f in decode_string (arena=..., str=0x2af689e1adf8,
str_length=@0x2af689e1adf4,
buf_start=0x2af689e1b0fb "XXX") at HPACK.cc:548
#2 0x00000000006438ae in decode_literal_header_field (header=...,
buf_start=0x2af689e1b0fa "XXX", buf_end=0x2af689e1b1d1 "XXX",
dynamic_table=...) at HPACK.cc:650
#3 0x0000000000638c61 in http2_parse_header_fragment (hdr=0x2af7f5efb178,
iov=..., dynamic_table=..., cont=false) at HTTP2.cc:672
#4 0x0000000000641b88 in Http2Stream::decode_request_header
(this=0x2af7f5efb150, iov=..., dynamic_table=..., cont=false) at
Http2ConnectionState.h:150
#5 0x000000000063fcdc in rcv_continuation_frame (cs=..., cstate=...,
frame=...) at Http2ConnectionState.cc:544
{code}
was:
In the code that was failing before the fix, it was using the ascii code value
to determine if it was at a leaf node in the tree. This didn't work for the
charter '\0' since it wouldn't think it was a leaf node. The fix was to add a
leaf node flag instead of using the ascii value.
{code}
#0 0x00000000006427d0 in huffman_decode (
dst_start=0x2af80db6756a "XXX", src_len=99) at HuffmanCodec.cc:373
#1 0x000000000064345f in decode_string (arena=..., str=0x2af689e1adf8,
str_length=@0x2af689e1adf4,
buf_start=0x2af689e1b0fb "XXX") at HPACK.cc:548
#2 0x00000000006438ae in decode_literal_header_field (header=...,
buf_start=0x2af689e1b0fa "XXX", buf_end=0x2af689e1b1d1 "XXX",
dynamic_table=...) at HPACK.cc:650
#3 0x0000000000638c61 in http2_parse_header_fragment (hdr=0x2af7f5efb178,
iov=..., dynamic_table=..., cont=false) at HTTP2.cc:672
#4 0x0000000000641b88 in Http2Stream::decode_request_header
(this=0x2af7f5efb150, iov=..., dynamic_table=..., cont=false) at
Http2ConnectionState.h:150
#5 0x000000000063fcdc in rcv_continuation_frame (cs=..., cstate=...,
frame=...) at Http2ConnectionState.cc:544
{code}
> Error in Huffman decoder for HPACK
> ----------------------------------
>
> Key: TS-3747
> URL: https://issues.apache.org/jira/browse/TS-3747
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP/2
> Reporter: Bryan Call
> Assignee: Bryan Call
> Labels: yahoo
> Fix For: 5.3.2, 6.0.0
>
>
> In the code that was failing before the fix, it was using the ascii code
> value to determine if it was at a leaf node in the tree. This didn't work
> for the charter '\0' since it wouldn't think it was a leaf node and would
> run off the tree. The fix was to add a leaf node flag instead of using the
> ascii value.
> {code}
> #0 0x00000000006427d0 in huffman_decode (
> dst_start=0x2af80db6756a "XXX", src_len=99) at HuffmanCodec.cc:373
> #1 0x000000000064345f in decode_string (arena=..., str=0x2af689e1adf8,
> str_length=@0x2af689e1adf4,
> buf_start=0x2af689e1b0fb "XXX") at HPACK.cc:548
> #2 0x00000000006438ae in decode_literal_header_field (header=...,
> buf_start=0x2af689e1b0fa "XXX", buf_end=0x2af689e1b1d1 "XXX",
> dynamic_table=...) at HPACK.cc:650
> #3 0x0000000000638c61 in http2_parse_header_fragment (hdr=0x2af7f5efb178,
> iov=..., dynamic_table=..., cont=false) at HTTP2.cc:672
> #4 0x0000000000641b88 in Http2Stream::decode_request_header
> (this=0x2af7f5efb150, iov=..., dynamic_table=..., cont=false) at
> Http2ConnectionState.h:150
> #5 0x000000000063fcdc in rcv_continuation_frame (cs=..., cstate=...,
> frame=...) at Http2ConnectionState.cc:544
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)