Bug #63780 [Opn->Fbk]: Segmentation fault when try to get $request

From: Date: Sun, 16 Dec 2012 11:17:29 +0000
Subject: Bug #63780 [Opn->Fbk]: Segmentation fault when try to get $request
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-175387@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=63780&edit=1

 ID:                 63780
 Updated by:         reeze@php.net
 Reported by:        php dot maks3w at virtualplanets dot net
 Summary:            Segmentation fault when try to get $request
-Status:             Open
+Status:             Feedback
 Type:               Bug
 Package:            SOAP related
 PHP Version:        5.4.9
 Block user comment: N
 Private report:     N

 New Comment:

Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php
for *NIX and
http://bugs.php.net/bugs-generating-backtrace-win32.php
for Win32

Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.




Previous Comments:
------------------------------------------------------------------------
[2012-12-15 18:06:17] php dot maks3w at virtualplanets dot net

Description:
------------
Situation: Custom class which extend from SoapClient and override "public 
function __doRequest($request, $location, $action, $version, $one_way = null)"

$request can't be used to compare strings, instead throw a Segmentation Fault 
error.

$request looks like a C Pointer or any other type instead of a PHP String type

As workaround you can filter the variable passing the value through a function 
which return basically the same value of the argument passed as input (like 
ltrim) after that it's possible save the returned value and now is a normal PHP 
String and can be compared.

Test script:
---------------
FAILING CODE:
public $lastRequest;

function __doRequest($request, $location, $action, $version, $one_way = 0) {
    $this->lastRequest = $request;
}

$this->assertEquals('SomeContent', $this->lastRequest); // Segmentation Faul.


WORKAROUND:
public $lastRequest;

function __doRequest($request, $location, $action, $version, $one_way = 0) {
    $this->lastRequest = ltrim($request); // Pass $request through a function
}

$this->assertEquals('SomeContent', $this->lastRequest); // Works




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63780&edit=1


Thread (4 messages)

« previous php.bugs (#175387) next »