Fix a PHP memory leak with SSL root certificates

pull/12706/head
Jack Wakefield 8 years ago
parent 953e3ae505
commit fc8eafefa3
  1. 8
      src/php/ext/grpc/channel_credentials.c

@ -35,6 +35,7 @@
#include <zend_hash.h>
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include <grpc/grpc.h>
#include <grpc/grpc_security.h>
@ -46,10 +47,11 @@ static char *default_pem_root_certs = NULL;
static grpc_ssl_roots_override_result get_ssl_roots_override(
char **pem_root_certs) {
*pem_root_certs = default_pem_root_certs;
if (default_pem_root_certs == NULL) {
if (!default_pem_root_certs) {
*pem_root_certs = NULL;
return GRPC_SSL_ROOTS_OVERRIDE_FAIL;
}
*pem_root_certs = gpr_strdup(default_pem_root_certs);
return GRPC_SSL_ROOTS_OVERRIDE_OK;
}
@ -101,7 +103,7 @@ PHP_METHOD(ChannelCredentials, setDefaultRootsPem) {
"setDefaultRootsPem expects 1 string", 1 TSRMLS_CC);
return;
}
default_pem_root_certs = gpr_malloc((pem_roots_length + 1) * sizeof(char));
default_pem_root_certs = gpr_realloc(default_pem_root_certs, (pem_roots_length + 1) * sizeof(char));
memcpy(default_pem_root_certs, pem_roots, pem_roots_length + 1);
}

Loading…
Cancel
Save