[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