[
https://issues.apache.org/jira/browse/THRIFT-2757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14163497#comment-14163497
]
Konrad Grochowski commented on THRIFT-2757:
-------------------------------------------
I've profiled globals also - 15 - 30% slower :| I would accept less than 10%...
As this method will be called a lot, I choose performance over clean code (it's
not that bad either, just wanted to be sure... nobody remembers int64max ;) )
Yep, python provides only sys.maxint :/
> TCompactProtocol and TJSONProtocol need boundary checking
> ---------------------------------------------------------
>
> Key: THRIFT-2757
> URL: https://issues.apache.org/jira/browse/THRIFT-2757
> Project: Thrift
> Issue Type: Bug
> Components: Python - Library
> Affects Versions: 0.9, 0.9.1, 0.9.2, 1.0
> Reporter: Bret Curtis
> Assignee: Konrad Grochowski
> Fix For: 0.9.2
>
>
> On the TCompactProtocol, using i16, i32, i64 there is currently no range
> checking happening and funky results will happen as makeZigZag will do its
> best to handle the input. i8 (byte) is effected as it uses pack/unpack which
> handles the case correctly.
> I wrote a test case for this using i8, i16, i32 and i64 and the result was
> that the TJSONProtocol is also effected. It instead just took whatever value
> it was sent regardless of type.
> I then wrote a check_boundary function to raise an exception when feed bad
> values in a certain bitness. This now raises an exception for both protocols.
> I also further built out the IWriteXX functions for the TJSONProtocol.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)