aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/security/credentials.c
diff options
context:
space:
mode:
authorGravatar Julien Boeuf <jboeuf@google.com>2015-09-15 15:20:11 -0700
committerGravatar Julien Boeuf <jboeuf@google.com>2015-09-15 15:20:11 -0700
commit1928d496a237c3850365e2557ae41ae73125fc80 (patch)
treeb5b2de2b1cc522ec6f3d664d6a6ea9ef096a8c58 /src/core/security/credentials.c
parent4ffbf0d22c915b57eb92b6256d8987aea3c68c44 (diff)
Adding C++ tests and fixing a few things.
Diffstat (limited to 'src/core/security/credentials.c')
-rw-r--r--src/core/security/credentials.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/security/credentials.c b/src/core/security/credentials.c
index afe980a5b0..5d3c7c90b0 100644
--- a/src/core/security/credentials.c
+++ b/src/core/security/credentials.c
@@ -1221,9 +1221,9 @@ static void plugin_md_request_metadata_ready(void *request,
}
r->cb(r->user_data, NULL, 0, GRPC_CREDENTIALS_ERROR);
} else {
+ size_t i;
grpc_credentials_md *md_array = NULL;
if (num_md > 0) {
- size_t i;
md_array = gpr_malloc(num_md * sizeof(grpc_credentials_md));
for (i = 0; i < num_md; i++) {
md_array[i].key = gpr_slice_from_copied_string(md[i].key);
@@ -1232,7 +1232,13 @@ static void plugin_md_request_metadata_ready(void *request,
}
}
r->cb(r->user_data, md_array, num_md, GRPC_CREDENTIALS_OK);
- if (md_array != NULL) gpr_free(md_array);
+ if (md_array != NULL) {
+ for (i = 0; i < num_md; i++) {
+ gpr_slice_unref(md_array[i].key);
+ gpr_slice_unref(md_array[i].value);
+ }
+ gpr_free(md_array);
+ }
}
gpr_free(r);
}