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

Jens Geyer resolved THRIFT-6024.
--------------------------------
    Fix Version/s: 0.24.0
       Resolution: Fixed

The patch makes the py bindings conform to the rest of the libarries. Any 
existing clients relying on the old behaviour may experiance a breaking change.

> Python THeaderTransport and TZlibTransport default max frame/decompressed 
> size should be DEFAULT_MAX_FRAME_SIZE (16384000), not HARD_MAX_FRAME_SIZE 
> (0x3FFFFFFF)
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-6024
>                 URL: https://issues.apache.org/jira/browse/THRIFT-6024
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>            Reporter: Jens Geyer
>            Priority: Major
>              Labels: breaking
>             Fix For: 0.24.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Python's THeaderTransport and TZlibTransport use HARD_MAX_FRAME_SIZE 
> (0x3FFFFFFF, ~1 GB) as the default for both max_frame_size and 
> max_decompressed_size, while every other Thrift binding defaults to 
> DEFAULT_MAX_FRAME_SIZE (16384000, ~16 MB).
> HARD_MAX_FRAME_SIZE is a protocol-level structural constraint (the THeader 
> frame length field is 30 bits wide), not a policy default. Using it as the 
> default means Python THeaderTransport and TZlibTransport will accept frames 
> up to ~1 GB by default, leaving the application unprotected against oversized 
> or malformed frames unless the caller explicitly calls set_max_frame_size().
> Fix: introduce DEFAULT_MAX_FRAME_SIZE = 16384000 in THeaderTransport.py 
> (matching all other bindings) and use it as the constructor default in both 
> THeaderTransport and TZlibTransport. HARD_MAX_FRAME_SIZE is retained as the 
> upper bound enforced by set_max_frame_size() / set_max_decompressed_size().



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

Reply via email to