[ 
https://issues.apache.org/jira/browse/THRIFT-2891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer updated THRIFT-2891:
-------------------------------
    Description: 
The Go implementation relies on {{base64.StdEncoding.Decode}} which expects the 
base64 encoding to be complete with padding. 

With Thrift it is legal to transfer binary data via JSON without padding, but 
the standard package can't handle this and returns an error instead ("invalid 
base64 data at offset N").

  was:
The Delphi implementation currently relies on IdCoderMIME for base64 
encoding/decoding, which expects the base64 encoding to be complete with 
padding. 

With Thrift it is legal to transfer binary data via JSON without padding, but 
IdCoderMIME fails to handle this case correctly. Depending on the length of the 
data, up to 2 bytes from the end of a binary data block may get lost.

        Summary: binary data may cause a failure with JSON transport under 
specific circumstances  (was: binary data may lose bytes with JSON transport 
under specific circumstances)

> binary data may cause a failure with JSON transport under specific 
> circumstances
> --------------------------------------------------------------------------------
>
>                 Key: THRIFT-2891
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2891
>             Project: Thrift
>          Issue Type: Bug
>          Components: Go - Library
>    Affects Versions: 0.9.1, 0.9.2
>            Reporter: Jens Geyer
>            Assignee: Jens Geyer
>             Fix For: 0.9.3
>
>
> The Go implementation relies on {{base64.StdEncoding.Decode}} which expects 
> the base64 encoding to be complete with padding. 
> With Thrift it is legal to transfer binary data via JSON without padding, but 
> the standard package can't handle this and returns an error instead ("invalid 
> base64 data at offset N").



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

Reply via email to