Gergely Farkas created THRIFT-5730:
--------------------------------------

             Summary: header parsing issue in C++ implementation of THttpServer
                 Key: THRIFT-5730
                 URL: https://issues.apache.org/jira/browse/THRIFT-5730
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Library
            Reporter: Gergely Farkas


The _THRIFT_strncasecmp(header, <header name constant>, sz) == 0_ condition 
used in _THttpServer::parseHeader()_ function returns true even if the name of 
the header being processed is a prefix of the header constant that is defined 
in the condition. 
For example, when processing the http header line "{_}con: 123{_}", we enter 
the code fragment where the _Content-length_ header content is processed, 
because the condition _THRIFT_strncasecmp("con: 123", "Content-length", 3) == 
0_ is true, since the first 3 characters of the two strings are the same.
The same is true for {_}strncmp(header, "{_}{_}X-Forwarded-For{_}{_}", sz) == 
0{_} condition, where the header line "X: 127.0.0.1" may hide the Origin if the 
client sends that after the _X-Forwarded-For_ header (and the proxy does not 
change the header order).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to