[ 
https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15793399#comment-15793399
 ] 

ASF GitHub Bot commented on THRIFT-4018:
----------------------------------------

GitHub user dbravender opened a pull request:

    https://github.com/apache/thrift/pull/1148

    THRIFT-4018 corruption after ApplicationException in Ruby server

    This fixes an issue where a Ruby Thrift server can corrupt connections by 
putting ApplicationException in the middle of a response. See 
https://issues.apache.org/jira/browse/THRIFT-4018 for more information.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/dbravender/thrift 
defect/THRIFT-4018-corruption-after-ApplicationException

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1148.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1148
    
----
commit d1e3ef2c600913c17e8503d792f35604105849d0
Author: Dan Bravender <dan.braven...@gmail.com>
Date:   2016-12-20T14:57:56Z

    THRIFT-4018 reproduction test case

commit aac7b6cedd3bf1711d3bfaa657d0e137d252508b
Author: Dan Bravender <dan.braven...@gmail.com>
Date:   2017-01-02T19:40:11Z

    THRIFT-4018 validate response before putting it on the wire
    Client: ruby
    
    Fixes an issue where an invalid response could corrupt all future responses

----


> Ruby server can corrupt connections by putting ApplicationException in the 
> middle of a response
> -----------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-4018
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4018
>             Project: Thrift
>          Issue Type: Bug
>          Components: Ruby - Library
>    Affects Versions: 0.9.3
>            Reporter: Dan Bravender
>
> # Have a client make a call to a thrift server method that returns an invalid 
> value for an enum
> # Have the client make another call to the same method that returns an 
> invalid value for an enum
> *Expected*: Thrift server responds with an ApplicationException for both calls
> *Actual*: The thrift server responds with ApplicationException for the first 
> call but then further calls can't be parsed by the client because there is 
> unexpected data that the client cannot parse 
> I discovered this while writing a test case for THRIFT-3781 though it is the 
> opposite problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to