Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.5.5

Bug #19894 XML-RPC Client Crash on Server empty responses.
Submitted: 2013-04-10 23:59 UTC
From: jamonalmansa Assigned:
Status: Open Package: XML_RPC (version 1.5.5)
PHP Version: 5.3.3 OS: Debian 6
Roadmaps: (Not assigned)    
Subscription  


 [2013-04-10 23:59 UTC] jamonalmansa (Francisco Gomez)
Description: ------------ When you send message to XML-RPC server and it responds empty message, you get: Undefined index: value (/usr/share/php/XML/RPC.php:1516) Test script: --------------- --In the client test script I have: //$msg is a valid XML_RPC_Message $resp = $client->send($msg); //<-- CRASH Undefined index: value (/usr/share/php/XML/RPC.php:1516) --In the XML-RPC line 1516 of RPC.php you have 1516 } elseif (!is_object($XML_RPC_xh[$parser]['value'])) { But $XML_RPC_xh[$parser]['value'] doesn't exist Expected result: ---------------- A valid XML-RPC empty response (without errors) Actual result: -------------- I have solved it checking if $XML_RPC_xh[$parser]['value'] is set: 1519 elseif ( isset($XML_RPC_xh[$parser]['value']) ) 1520 { 1521 $v = $XML_RPC_xh[$parser]['value']; 1522 if ($XML_RPC_xh[$parser]['isf']) { 1523 $f = $v->structmem('faultCode'); 1524 $fs = $v->structmem('faultString'); 1525 $r = new XML_RPC_Response($v, $f->scalarval(), 1526 $fs->scalarval()); 1527 } else { 1528 $r = new XML_RPC_Response($v); 1529 } 1530 } 1531 //elseif ( is_object($XML_RPC_xh[$parser]['value'] )) 1532 //{ 1533 // $v = $XML_RPC_xh[$parser]['value']; 1534 // if ($XML_RPC_xh[$parser]['isf']) { 1535 // $f = $v->structmem('faultCode'); 1536 // $fs = $v->structmem('faultString'); 1537 // $r = new XML_RPC_Response($v, $f->scalarval(), $fs->scalarval()); 1538 // } else { 1539 // $r = new XML_RPC_Response($v); 1540 // } 1541 //} 1542 else 1543 { 1544 // then something odd has happened 1545 // and it's time to generate a client side error 1546 // indicating something odd went on 1547 $r = new XML_RPC_Response(0, $XML_RPC_err['invalid_return'],$XML_RPC_str['invalid_return']); 1548 }

Comments