php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75306 Memleak in SoapClient
Submitted: 2017-10-03 09:00 UTC Modified: 2018-11-04 11:04 UTC
Votes:3
Avg. Score:4.0 ± 0.8
Reproduced:2 of 2 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: valov at mtsbank dot ru Assigned:
Status: Closed Package: SOAP related
PHP Version: 7.1.10 OS: RHEL 6
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: valov at mtsbank dot ru
New email:
PHP Version: OS:

 

 [2017-10-03 09:00 UTC] valov at mtsbank dot ru
Description:
------------
Memleak in SoapClient detected, in test script after few seconds you will get error: "Allowed memory size exhausted".

Test script:
---------------
<?php
while(true) {
  $client = new SoapClient("test.wsdl");
}
?>

You can use any test.wsdl specification, for example https://www.tutorialspoint.com/wsdl/wsdl_example.htm


Patches

fix-refcounting (last revision 2018-11-04 11:04 UTC by cmb@php.net)

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-01-01 21:10 UTC] nikic@php.net
-Status: Open +Status: Verified
 [2018-01-01 21:10 UTC] nikic@php.net
Can reproduce with soap.wsdl_cache_enabled=0.
 [2018-11-04 11:04 UTC] cmb@php.net
In this case, a new stream context is allocated[1], converted to a
zval[2] which increases the refcount, but the refcount is only
decreased once[3], resulting in the reported memory leak.  So not
increasing the refcount when converting to a zval would solve this
issue.  However, if a stream context is passed in the $options
array, its refcount has to be increased to avoid premature
freeing.

[1] <https://github.com/php/php-src/blob/php-7.3.0RC4/ext/soap/php_sdl.c#L3238>
[2] <https://github.com/php/php-src/blob/php-7.3.0RC4/ext/soap/php_sdl.c#L3303>
[3] <https://github.com/php/php-src/blob/php-7.3.0RC4/ext/soap/php_sdl.c#L3318>
 [2018-11-04 11:04 UTC] cmb@php.net
The following patch has been added/updated:

Patch Name: fix-refcounting
Revision:   1541329477
URL:        https://bugs.php.net/patch-display.php?bug=75306&patch=fix-refcounting&revision=1541329477
 [2023-10-26 18:00 UTC] git@php.net
Automatic comment on behalf of nielsdos
Revision: https://github.com/php/php-src/commit/27797a26caa8368b6158e7b11cbbc661fc495772
Log: Fix bug #75306: Memleak in SoapClient
 [2023-10-26 18:00 UTC] git@php.net
-Status: Verified +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Oct 11 19:01:27 2024 UTC