Merge pull request #12706 from applinskinner/master

Fix a PHP memory leak with SSL root certificates
pull/13708/head
Zhouyihai Ding 7 years ago committed by GitHub
commit f9675bb186
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  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