[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pecl-cvs
Subject:    [PECL-CVS] com =?UTF-8?Q?pecl/search=5Fengine/solr=3A=20Request=20=23=37=30=39=37=34?= =?UTF-8?Q?=3A
From:       Omar Shaban <omars () php ! net>
Date:       2015-11-29 11:16:26
Message-ID: php-mail-b2c815182e38c33cde14dba934c582be1431816320 () git ! php ! net
[Download RAW message or body]

Commit:    5bf8ed48d44de3535119cfba3803793a8d5b115e
Author:    Omar Shaban <omars@php.net>         Sun, 29 Nov 2015 13:16:26 +0200
Parents:   2bb4415b1c93719c6cf7548144154804f7d6f7c1
Branches:  master

Link:       http://git.php.net/?p=pecl/search_engine/solr.git;a=commitdiff;h=5bf8ed48d44de3535119cfba3803793a8d5b115e


Log:
Request #70974: Fixed memory leak in child document unserialization

Bugs:
https://bugs.php.net/70974

Changed paths:
  M  php_solr_document.c


Diff:
diff --git a/php_solr_document.c b/php_solr_document.c
index 904c2b1..7dd3dc1 100644
--- a/php_solr_document.c
+++ b/php_solr_document.c
@@ -322,15 +322,18 @@ static int solr_unserialize_child_documents(xmlDoc *doc, \
solr_document_t *doc_en  {
         for (;idx < num_nodes; idx++)
         {
-            char *sdoc;
+            char *sdoc; /* serialized document string */
+            unsigned char *sdoc_copy;
             hash = result->nodeTab[idx]->children->content;
 
             sdoc = (char *)php_base64_decode((const unsigned char*)hash, \
strlen((char *)hash), &hash_len);  memset(&var_hash, 0, \
sizeof(php_unserialize_data_t));  PHP_VAR_UNSERIALIZE_INIT(var_hash);
             MAKE_STD_ZVAL(solr_doc_zv);
+            sdoc_copy = (unsigned char *)strdup(sdoc);
+            efree(sdoc);
 
-            if (!php_var_unserialize(&solr_doc_zv, (const unsigned char **)&sdoc, \
str_end, &var_hash TSRMLS_CC)){ +            if (!php_var_unserialize(&solr_doc_zv, \
(const unsigned char **)&sdoc_copy, str_end, &var_hash TSRMLS_CC)){  \
                PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
                 php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unable to unserialize \
child document");


--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic