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

James E. King, III updated THRIFT-2321:
---------------------------------------
    Component/s:     (was: C++ - Compiler)
                 PHP - Compiler

> thrift php extension,when giving data not a correct type,it will seperate 
> it,but when running function "SEPARATE_ZVAL()",the real data pointer is 
> changed,real data will loss.
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-2321
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2321
>             Project: Thrift
>          Issue Type: Bug
>          Components: PHP - Compiler, PHP - Library
>    Affects Versions: 0.9
>         Environment: PHP 5.2.9 
> Zend Engine v2.2.0
> g++ (SUSE Linux) 4.3.2 [gcc-4_3-branch revision 141291]
>            Reporter: grayson
>              Labels: thrift_protocol
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> code position:
> file::thrift-0.9.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp
> void binary_serialize(.....)
> {
>                 .
>                 .
>                 .
>     if (Z_TYPE_PP(value) != IS_LONG) {
>             SEPARATE_ZVAL(value);
>             convert_to_long(*value);
>     }
>                 .
>                 .
>                 .
> }
> php client have a function:
> $lmflag = array("3");
> public function GetStaet($lmflag)
> thrift file define this function:
> ReturnResult GetState(1:list<i32> lmflag);
> now we use php extension(thrift_protocol.so) to call function "GetState()",as 
> parameter lmflag data type inconsistent,so the extension will seperate it use 
> function "SEPARATE_ZVAL(value)", then the pointer "value" will change it 
> point,now we can find that real data pointer is missing,the real data is lost.



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

Reply via email to