diff options
author | Zhouyihai Ding <ddyihai@google.com> | 2018-01-23 20:43:53 -0800 |
---|---|---|
committer | Zhouyihai Ding <ddyihai@google.com> | 2018-01-24 11:15:04 -0800 |
commit | ec0669c8a27893e582fd498624dbee57f7a2ca49 (patch) | |
tree | 73313bb763a4e7b61f58bb7959cf7cd865a41ab9 /src/php/ext/grpc | |
parent | c84c8d44c7e835f1906cdb9f3f33248b593305c7 (diff) |
php: call credentials plugin_get_metadata metadata leak
Diffstat (limited to 'src/php/ext/grpc')
-rw-r--r-- | src/php/ext/grpc/call.c | 4 | ||||
-rw-r--r-- | src/php/ext/grpc/call_credentials.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c index 115358d600..ff55c3cbfa 100644 --- a/src/php/ext/grpc/call.c +++ b/src/php/ext/grpc/call.c @@ -128,10 +128,12 @@ bool create_metadata_array(zval *array, grpc_metadata_array *metadata) { HashTable *inner_array_hash; zval *value; zval *inner_array; + grpc_metadata_array_init(metadata); + metadata->count = 0; + metadata->metadata = NULL; if (Z_TYPE_P(array) != IS_ARRAY) { return false; } - grpc_metadata_array_init(metadata); array_hash = Z_ARRVAL_P(array); char *key; diff --git a/src/php/ext/grpc/call_credentials.c b/src/php/ext/grpc/call_credentials.c index a37eb601c4..41c488a79c 100644 --- a/src/php/ext/grpc/call_credentials.c +++ b/src/php/ext/grpc/call_credentials.c @@ -195,6 +195,7 @@ int plugin_get_metadata( if (!create_metadata_array(retval, &metadata)) { *status = GRPC_STATUS_INVALID_ARGUMENT; should_return = true; // Synchronous return. + grpc_php_metadata_array_destroy_including_entries(&metadata); } if (retval != NULL) { |