Merge pull request #9753 from ctiller/zalloc

Add zalloc, convert a bunch of files to use it
pull/9901/head
Craig Tiller 8 years ago committed by GitHub
commit cd232f64c6
  1. 1
      grpc.def
  2. 3
      include/grpc/support/alloc.h
  3. 1
      src/core/ext/client_channel/client_channel.c
  4. 5
      src/core/ext/client_channel/subchannel.c
  5. 3
      src/core/ext/client_channel/uri_parser.c
  6. 17
      src/core/ext/lb_policy/grpclb/grpclb.c
  7. 9
      src/core/ext/lb_policy/grpclb/load_balancer_api.c
  8. 6
      src/core/ext/lb_policy/pick_first/pick_first.c
  9. 12
      src/core/ext/lb_policy/round_robin/round_robin.c
  10. 4
      src/core/ext/load_reporting/load_reporting_filter.c
  11. 3
      src/core/ext/resolver/dns/native/dns_resolver.c
  12. 3
      src/core/ext/resolver/sockaddr/sockaddr_resolver.c
  13. 3
      src/core/ext/transport/chttp2/client/chttp2_connector.c
  14. 3
      src/core/ext/transport/chttp2/server/chttp2_server.c
  15. 6
      src/core/ext/transport/chttp2/transport/chttp2_transport.c
  16. 6
      src/core/lib/channel/channel_stack.h
  17. 5
      src/core/lib/channel/channel_stack_builder.c
  18. 3
      src/core/lib/channel/deadline_filter.c
  19. 1
      src/core/lib/channel/deadline_filter.h
  20. 3
      src/core/lib/channel/handshaker.c
  21. 1
      src/core/lib/channel/http_server_filter.c
  22. 1
      src/core/lib/channel/message_size_filter.c
  23. 3
      src/core/lib/http/httpcli_security_connector.c
  24. 3
      src/core/lib/iomgr/ev_poll_posix.c
  25. 1
      src/core/lib/iomgr/pollset.h
  26. 1
      src/core/lib/iomgr/pollset_uv.c
  27. 1
      src/core/lib/iomgr/pollset_windows.c
  28. 3
      src/core/lib/iomgr/tcp_client_uv.c
  29. 3
      src/core/lib/json/json.c
  30. 13
      src/core/lib/security/context/security_context.c
  31. 12
      src/core/lib/security/credentials/composite/composite_credentials.c
  32. 3
      src/core/lib/security/credentials/credentials.c
  33. 3
      src/core/lib/security/credentials/credentials_metadata.c
  34. 6
      src/core/lib/security/credentials/fake/fake_credentials.c
  35. 2
      src/core/lib/security/credentials/google_default/google_default_credentials.c
  36. 3
      src/core/lib/security/credentials/iam/iam_credentials.c
  37. 3
      src/core/lib/security/credentials/jwt/jwt_credentials.c
  38. 9
      src/core/lib/security/credentials/jwt/jwt_verifier.c
  39. 6
      src/core/lib/security/credentials/oauth2/oauth2_credentials.c
  40. 6
      src/core/lib/security/credentials/plugin/plugin_credentials.c
  41. 6
      src/core/lib/security/credentials/ssl/ssl_credentials.c
  42. 12
      src/core/lib/security/transport/security_connector.c
  43. 3
      src/core/lib/security/transport/security_handshaker.c
  44. 6
      src/core/lib/slice/slice_hash_table.c
  45. 6
      src/core/lib/slice/slice_intern.c
  46. 27
      src/core/lib/support/alloc.c
  47. 6
      src/core/lib/support/cmdline.c
  48. 3
      src/core/lib/support/histogram.c
  49. 3
      src/core/lib/support/subprocess_posix.c
  50. 4
      src/core/lib/surface/call.c
  51. 2
      src/core/lib/surface/completion_queue.c
  52. 10
      src/core/lib/surface/server.c
  53. 6
      src/core/lib/transport/metadata.c
  54. 1
      src/core/lib/transport/transport.h
  55. 6
      src/core/lib/tsi/fake_transport_security.c
  56. 23
      src/core/lib/tsi/ssl_transport_security.c
  57. 6
      src/core/lib/tsi/transport_security.c
  58. 2
      src/ruby/ext/grpc/rb_grpc_imports.generated.c
  59. 3
      src/ruby/ext/grpc/rb_grpc_imports.generated.h
  60. 2
      test/core/end2end/fixtures/http_proxy.c
  61. 2
      test/core/http/httpcli_test.c
  62. 2
      test/core/http/httpscli_test.c
  63. 2
      test/core/iomgr/endpoint_pair_test.c
  64. 2
      test/core/iomgr/ev_epoll_linux_test.c
  65. 2
      test/core/iomgr/fd_posix_test.c
  66. 2
      test/core/iomgr/pollset_set_test.c
  67. 2
      test/core/iomgr/resolve_address_posix_test.c
  68. 2
      test/core/iomgr/resolve_address_test.c
  69. 2
      test/core/iomgr/tcp_client_posix_test.c
  70. 2
      test/core/iomgr/tcp_posix_test.c
  71. 2
      test/core/iomgr/tcp_server_posix_test.c
  72. 2
      test/core/iomgr/udp_server_test.c
  73. 2
      test/core/security/oauth2_utils.c
  74. 2
      test/core/security/print_google_default_creds_token.c
  75. 2
      test/core/security/secure_endpoint_test.c
  76. 2
      test/core/security/verify_jwt.c
  77. 2
      test/core/support/alloc_test.c
  78. 2
      test/core/surface/concurrent_connectivity_test.c
  79. 4
      test/core/util/memory_counters.c
  80. 4
      test/core/util/port_server_client.c
  81. 2
      test/core/util/test_tcp_server.c
  82. 4
      test/cpp/microbenchmarks/bm_call_create.cc

@ -182,6 +182,7 @@ EXPORTS
grpc_slice_buffer_take_first grpc_slice_buffer_take_first
grpc_slice_buffer_undo_take_first grpc_slice_buffer_undo_take_first
gpr_malloc gpr_malloc
gpr_zalloc
gpr_free gpr_free
gpr_realloc gpr_realloc
gpr_malloc_aligned gpr_malloc_aligned

@ -44,6 +44,7 @@ extern "C" {
typedef struct gpr_allocation_functions { typedef struct gpr_allocation_functions {
void *(*malloc_fn)(size_t size); void *(*malloc_fn)(size_t size);
void *(*zalloc_fn)(size_t size); /* if NULL, uses malloc_fn then memset */
void *(*realloc_fn)(void *ptr, size_t size); void *(*realloc_fn)(void *ptr, size_t size);
void (*free_fn)(void *ptr); void (*free_fn)(void *ptr);
} gpr_allocation_functions; } gpr_allocation_functions;
@ -54,6 +55,8 @@ typedef struct gpr_allocation_functions {
* contain. * contain.
*/ */
GPRAPI void *gpr_malloc(size_t size); GPRAPI void *gpr_malloc(size_t size);
/* like malloc, but zero all bytes before returning them */
GPRAPI void *gpr_zalloc(size_t size);
/* free */ /* free */
GPRAPI void gpr_free(void *ptr); GPRAPI void gpr_free(void *ptr);
/* realloc, never returns NULL */ /* realloc, never returns NULL */

@ -520,7 +520,6 @@ static grpc_error *cc_init_channel_elem(grpc_exec_ctx *exec_ctx,
grpc_channel_element *elem, grpc_channel_element *elem,
grpc_channel_element_args *args) { grpc_channel_element_args *args) {
channel_data *chand = elem->channel_data; channel_data *chand = elem->channel_data;
memset(chand, 0, sizeof(*chand));
GPR_ASSERT(args->is_last); GPR_ASSERT(args->is_last);
GPR_ASSERT(elem->filter == &grpc_client_channel_filter); GPR_ASSERT(elem->filter == &grpc_client_channel_filter);
// Initialize data members. // Initialize data members.

@ -316,8 +316,7 @@ grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx,
return c; return c;
} }
c = gpr_malloc(sizeof(*c)); c = gpr_zalloc(sizeof(*c));
memset(c, 0, sizeof(*c));
c->key = key; c->key = key;
gpr_atm_no_barrier_store(&c->ref_pair, 1 << INTERNAL_REF_BITS); gpr_atm_no_barrier_store(&c->ref_pair, 1 << INTERNAL_REF_BITS);
c->connector = connector; c->connector = connector;
@ -765,7 +764,7 @@ grpc_error *grpc_connected_subchannel_create_call(
grpc_polling_entity *pollent, grpc_slice path, gpr_timespec start_time, grpc_polling_entity *pollent, grpc_slice path, gpr_timespec start_time,
gpr_timespec deadline, grpc_subchannel_call **call) { gpr_timespec deadline, grpc_subchannel_call **call) {
grpc_channel_stack *chanstk = CHANNEL_STACK_FROM_CONNECTION(con); grpc_channel_stack *chanstk = CHANNEL_STACK_FROM_CONNECTION(con);
*call = gpr_malloc(sizeof(grpc_subchannel_call) + chanstk->call_stack_size); *call = gpr_zalloc(sizeof(grpc_subchannel_call) + chanstk->call_stack_size);
grpc_call_stack *callstk = SUBCHANNEL_CALL_TO_CALL_STACK(*call); grpc_call_stack *callstk = SUBCHANNEL_CALL_TO_CALL_STACK(*call);
(*call)->connection = con; // Ref is added below. (*call)->connection = con; // Ref is added below.
grpc_error *error = grpc_error *error =

@ -262,8 +262,7 @@ grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors) {
fragment_end = i; fragment_end = i;
} }
uri = gpr_malloc(sizeof(*uri)); uri = gpr_zalloc(sizeof(*uri));
memset(uri, 0, sizeof(*uri));
uri->scheme = copy_component(uri_text, scheme_begin, scheme_end); uri->scheme = copy_component(uri_text, scheme_begin, scheme_end);
uri->authority = copy_component(uri_text, authority_begin, authority_end); uri->authority = copy_component(uri_text, authority_begin, authority_end);
uri->path = copy_component(uri_text, path_begin, path_end); uri->path = copy_component(uri_text, path_begin, path_end);

@ -238,9 +238,7 @@ static void add_pending_pick(pending_pick **root,
const grpc_lb_policy_pick_args *pick_args, const grpc_lb_policy_pick_args *pick_args,
grpc_connected_subchannel **target, grpc_connected_subchannel **target,
grpc_closure *on_complete) { grpc_closure *on_complete) {
pending_pick *pp = gpr_malloc(sizeof(*pp)); pending_pick *pp = gpr_zalloc(sizeof(*pp));
memset(pp, 0, sizeof(pending_pick));
memset(&pp->wrapped_on_complete_arg, 0, sizeof(wrapped_rr_closure_arg));
pp->next = *root; pp->next = *root;
pp->pick_args = *pick_args; pp->pick_args = *pick_args;
pp->target = target; pp->target = target;
@ -265,9 +263,7 @@ typedef struct pending_ping {
} pending_ping; } pending_ping;
static void add_pending_ping(pending_ping **root, grpc_closure *notify) { static void add_pending_ping(pending_ping **root, grpc_closure *notify) {
pending_ping *pping = gpr_malloc(sizeof(*pping)); pending_ping *pping = gpr_zalloc(sizeof(*pping));
memset(pping, 0, sizeof(pending_ping));
memset(&pping->wrapped_notify_arg, 0, sizeof(wrapped_rr_closure_arg));
pping->wrapped_notify_arg.wrapped_closure = notify; pping->wrapped_notify_arg.wrapped_closure = notify;
pping->wrapped_notify_arg.free_when_done = pping; pping->wrapped_notify_arg.free_when_done = pping;
pping->next = *root; pping->next = *root;
@ -674,8 +670,7 @@ static void rr_handover_locked(grpc_exec_ctx *exec_ctx,
/* Allocate the data for the tracking of the new RR policy's connectivity. /* Allocate the data for the tracking of the new RR policy's connectivity.
* It'll be deallocated in glb_rr_connectivity_changed() */ * It'll be deallocated in glb_rr_connectivity_changed() */
rr_connectivity_data *rr_connectivity = rr_connectivity_data *rr_connectivity =
gpr_malloc(sizeof(rr_connectivity_data)); gpr_zalloc(sizeof(rr_connectivity_data));
memset(rr_connectivity, 0, sizeof(rr_connectivity_data));
grpc_closure_init(&rr_connectivity->on_change, grpc_closure_init(&rr_connectivity->on_change,
glb_rr_connectivity_changed_locked, rr_connectivity, glb_rr_connectivity_changed_locked, rr_connectivity,
grpc_combiner_scheduler(glb_policy->base.combiner, false)); grpc_combiner_scheduler(glb_policy->base.combiner, false));
@ -860,8 +855,7 @@ static grpc_lb_policy *glb_create(grpc_exec_ctx *exec_ctx,
} }
if (num_grpclb_addrs == 0) return NULL; if (num_grpclb_addrs == 0) return NULL;
glb_lb_policy *glb_policy = gpr_malloc(sizeof(*glb_policy)); glb_lb_policy *glb_policy = gpr_zalloc(sizeof(*glb_policy));
memset(glb_policy, 0, sizeof(*glb_policy));
/* Get server name. */ /* Get server name. */
arg = grpc_channel_args_find(args->args, GRPC_ARG_SERVER_URI); arg = grpc_channel_args_find(args->args, GRPC_ARG_SERVER_URI);
@ -1047,8 +1041,7 @@ static int glb_pick_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
} }
GRPC_LB_POLICY_REF(glb_policy->rr_policy, "glb_pick"); GRPC_LB_POLICY_REF(glb_policy->rr_policy, "glb_pick");
wrapped_rr_closure_arg *wc_arg = gpr_malloc(sizeof(wrapped_rr_closure_arg)); wrapped_rr_closure_arg *wc_arg = gpr_zalloc(sizeof(wrapped_rr_closure_arg));
memset(wc_arg, 0, sizeof(wrapped_rr_closure_arg));
grpc_closure_init(&wc_arg->wrapper_closure, wrapped_rr_closure, wc_arg, grpc_closure_init(&wc_arg->wrapper_closure, wrapped_rr_closure, wc_arg,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);

@ -62,8 +62,7 @@ static bool decode_serverlist(pb_istream_t *stream, const pb_field_t *field,
} }
dec_arg->num_servers++; dec_arg->num_servers++;
} else { /* second pass. Actually decode. */ } else { /* second pass. Actually decode. */
grpc_grpclb_server *server = gpr_malloc(sizeof(grpc_grpclb_server)); grpc_grpclb_server *server = gpr_zalloc(sizeof(grpc_grpclb_server));
memset(server, 0, sizeof(grpc_grpclb_server));
GPR_ASSERT(dec_arg->num_servers > 0); GPR_ASSERT(dec_arg->num_servers > 0);
if (dec_arg->decoding_idx == 0) { /* first iteration of second pass */ if (dec_arg->decoding_idx == 0) { /* first iteration of second pass */
dec_arg->servers = dec_arg->servers =
@ -160,8 +159,7 @@ grpc_grpclb_serverlist *grpc_grpclb_response_parse_serverlist(
return NULL; return NULL;
} }
grpc_grpclb_serverlist *sl = gpr_malloc(sizeof(grpc_grpclb_serverlist)); grpc_grpclb_serverlist *sl = gpr_zalloc(sizeof(grpc_grpclb_serverlist));
memset(sl, 0, sizeof(*sl));
sl->num_servers = arg.num_servers; sl->num_servers = arg.num_servers;
sl->servers = arg.servers; sl->servers = arg.servers;
if (res.server_list.has_expiration_interval) { if (res.server_list.has_expiration_interval) {
@ -183,8 +181,7 @@ void grpc_grpclb_destroy_serverlist(grpc_grpclb_serverlist *serverlist) {
grpc_grpclb_serverlist *grpc_grpclb_serverlist_copy( grpc_grpclb_serverlist *grpc_grpclb_serverlist_copy(
const grpc_grpclb_serverlist *sl) { const grpc_grpclb_serverlist *sl) {
grpc_grpclb_serverlist *copy = gpr_malloc(sizeof(grpc_grpclb_serverlist)); grpc_grpclb_serverlist *copy = gpr_zalloc(sizeof(grpc_grpclb_serverlist));
memset(copy, 0, sizeof(grpc_grpclb_serverlist));
copy->num_servers = sl->num_servers; copy->num_servers = sl->num_servers;
memcpy(&copy->expiration_interval, &sl->expiration_interval, memcpy(&copy->expiration_interval, &sl->expiration_interval,
sizeof(grpc_grpclb_duration)); sizeof(grpc_grpclb_duration));

@ -409,11 +409,9 @@ static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx,
} }
if (num_addrs == 0) return NULL; if (num_addrs == 0) return NULL;
pick_first_lb_policy *p = gpr_malloc(sizeof(*p)); pick_first_lb_policy *p = gpr_zalloc(sizeof(*p));
memset(p, 0, sizeof(*p));
p->subchannels = gpr_malloc(sizeof(grpc_subchannel *) * num_addrs); p->subchannels = gpr_zalloc(sizeof(grpc_subchannel *) * num_addrs);
memset(p->subchannels, 0, sizeof(*p->subchannels) * num_addrs);
grpc_subchannel_args sc_args; grpc_subchannel_args sc_args;
size_t subchannel_idx = 0; size_t subchannel_idx = 0;
for (size_t i = 0; i < addresses->num_addresses; i++) { for (size_t i = 0; i < addresses->num_addresses; i++) {

@ -213,8 +213,7 @@ static void advance_last_picked_locked(round_robin_lb_policy *p) {
* csc to the list of ready subchannels. */ * csc to the list of ready subchannels. */
static ready_list *add_connected_sc_locked(round_robin_lb_policy *p, static ready_list *add_connected_sc_locked(round_robin_lb_policy *p,
subchannel_data *sd) { subchannel_data *sd) {
ready_list *new_elem = gpr_malloc(sizeof(ready_list)); ready_list *new_elem = gpr_zalloc(sizeof(ready_list));
memset(new_elem, 0, sizeof(ready_list));
new_elem->subchannel = sd->subchannel; new_elem->subchannel = sd->subchannel;
new_elem->user_data = sd->user_data; new_elem->user_data = sd->user_data;
if (p->ready_list.prev == NULL) { if (p->ready_list.prev == NULL) {
@ -699,12 +698,10 @@ static grpc_lb_policy *round_robin_create(grpc_exec_ctx *exec_ctx,
} }
if (num_addrs == 0) return NULL; if (num_addrs == 0) return NULL;
round_robin_lb_policy *p = gpr_malloc(sizeof(*p)); round_robin_lb_policy *p = gpr_zalloc(sizeof(*p));
memset(p, 0, sizeof(*p));
p->num_addresses = num_addrs; p->num_addresses = num_addrs;
p->subchannels = gpr_malloc(sizeof(*p->subchannels) * num_addrs); p->subchannels = gpr_zalloc(sizeof(*p->subchannels) * num_addrs);
memset(p->subchannels, 0, sizeof(*p->subchannels) * num_addrs);
grpc_subchannel_args sc_args; grpc_subchannel_args sc_args;
size_t subchannel_idx = 0; size_t subchannel_idx = 0;
@ -731,8 +728,7 @@ static grpc_lb_policy *round_robin_create(grpc_exec_ctx *exec_ctx,
grpc_channel_args_destroy(exec_ctx, new_args); grpc_channel_args_destroy(exec_ctx, new_args);
if (subchannel != NULL) { if (subchannel != NULL) {
subchannel_data *sd = gpr_malloc(sizeof(*sd)); subchannel_data *sd = gpr_zalloc(sizeof(*sd));
memset(sd, 0, sizeof(*sd));
p->subchannels[subchannel_idx] = sd; p->subchannels[subchannel_idx] = sd;
sd->policy = p; sd->policy = p;
sd->index = subchannel_idx; sd->index = subchannel_idx;

@ -102,8 +102,6 @@ static grpc_error *init_call_elem(grpc_exec_ctx *exec_ctx,
grpc_call_element *elem, grpc_call_element *elem,
const grpc_call_element_args *args) { const grpc_call_element_args *args) {
call_data *calld = elem->call_data; call_data *calld = elem->call_data;
memset(calld, 0, sizeof(call_data));
calld->id = (intptr_t)args->call_stack; calld->id = (intptr_t)args->call_stack;
grpc_closure_init(&calld->on_initial_md_ready, on_initial_md_ready, elem, grpc_closure_init(&calld->on_initial_md_ready, on_initial_md_ready, elem,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
@ -154,8 +152,6 @@ static grpc_error *init_channel_elem(grpc_exec_ctx *exec_ctx,
GPR_ASSERT(!args->is_last); GPR_ASSERT(!args->is_last);
channel_data *chand = elem->channel_data; channel_data *chand = elem->channel_data;
memset(chand, 0, sizeof(channel_data));
chand->id = (intptr_t)args->channel_stack; chand->id = (intptr_t)args->channel_stack;
/* TODO(dgq): do something with the data /* TODO(dgq): do something with the data

@ -254,8 +254,7 @@ static grpc_resolver *dns_create(grpc_exec_ctx *exec_ctx,
char *path = args->uri->path; char *path = args->uri->path;
if (path[0] == '/') ++path; if (path[0] == '/') ++path;
// Create resolver. // Create resolver.
dns_resolver *r = gpr_malloc(sizeof(dns_resolver)); dns_resolver *r = gpr_zalloc(sizeof(dns_resolver));
memset(r, 0, sizeof(*r));
grpc_resolver_init(&r->base, &dns_resolver_vtable, args->combiner); grpc_resolver_init(&r->base, &dns_resolver_vtable, args->combiner);
r->name_to_resolve = gpr_strdup(path); r->name_to_resolve = gpr_strdup(path);
r->default_port = gpr_strdup(default_port); r->default_port = gpr_strdup(default_port);

@ -190,8 +190,7 @@ static grpc_resolver *sockaddr_create(grpc_exec_ctx *exec_ctx,
return NULL; return NULL;
} }
/* Instantiate resolver. */ /* Instantiate resolver. */
sockaddr_resolver *r = gpr_malloc(sizeof(sockaddr_resolver)); sockaddr_resolver *r = gpr_zalloc(sizeof(sockaddr_resolver));
memset(r, 0, sizeof(*r));
r->addresses = addresses; r->addresses = addresses;
r->channel_args = grpc_channel_args_copy(args->args); r->channel_args = grpc_channel_args_copy(args->args);
grpc_resolver_init(&r->base, &sockaddr_resolver_vtable, args->combiner); grpc_resolver_init(&r->base, &sockaddr_resolver_vtable, args->combiner);

@ -248,8 +248,7 @@ static const grpc_connector_vtable chttp2_connector_vtable = {
chttp2_connector_connect}; chttp2_connector_connect};
grpc_connector *grpc_chttp2_connector_create() { grpc_connector *grpc_chttp2_connector_create() {
chttp2_connector *c = gpr_malloc(sizeof(*c)); chttp2_connector *c = gpr_zalloc(sizeof(*c));
memset(c, 0, sizeof(*c));
c->base.vtable = &chttp2_connector_vtable; c->base.vtable = &chttp2_connector_vtable;
gpr_mu_init(&c->mu); gpr_mu_init(&c->mu);
gpr_ref_init(&c->refs, 1); gpr_ref_init(&c->refs, 1);

@ -222,8 +222,7 @@ grpc_error *grpc_chttp2_server_add_port(grpc_exec_ctx *exec_ctx,
if (err != GRPC_ERROR_NONE) { if (err != GRPC_ERROR_NONE) {
goto error; goto error;
} }
state = gpr_malloc(sizeof(*state)); state = gpr_zalloc(sizeof(*state));
memset(state, 0, sizeof(*state));
grpc_closure_init(&state->tcp_server_shutdown_complete, grpc_closure_init(&state->tcp_server_shutdown_complete,
tcp_server_shutdown_complete, state, tcp_server_shutdown_complete, state,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);

@ -235,8 +235,6 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
GPR_ASSERT(strlen(GRPC_CHTTP2_CLIENT_CONNECT_STRING) == GPR_ASSERT(strlen(GRPC_CHTTP2_CLIENT_CONNECT_STRING) ==
GRPC_CHTTP2_CLIENT_CONNECT_STRLEN); GRPC_CHTTP2_CLIENT_CONNECT_STRLEN);
memset(t, 0, sizeof(*t));
t->base.vtable = &vtable; t->base.vtable = &vtable;
t->ep = ep; t->ep = ep;
/* one ref is for destroy */ /* one ref is for destroy */
@ -582,8 +580,6 @@ static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt;
grpc_chttp2_stream *s = (grpc_chttp2_stream *)gs; grpc_chttp2_stream *s = (grpc_chttp2_stream *)gs;
memset(s, 0, sizeof(*s));
s->t = t; s->t = t;
s->refcount = refcount; s->refcount = refcount;
/* We reserve one 'active stream' that's dropped when the stream is /* We reserve one 'active stream' that's dropped when the stream is
@ -2587,7 +2583,7 @@ static const grpc_transport_vtable vtable = {sizeof(grpc_chttp2_stream),
grpc_transport *grpc_create_chttp2_transport( grpc_transport *grpc_create_chttp2_transport(
grpc_exec_ctx *exec_ctx, const grpc_channel_args *channel_args, grpc_exec_ctx *exec_ctx, const grpc_channel_args *channel_args,
grpc_endpoint *ep, int is_client) { grpc_endpoint *ep, int is_client) {
grpc_chttp2_transport *t = gpr_malloc(sizeof(grpc_chttp2_transport)); grpc_chttp2_transport *t = gpr_zalloc(sizeof(grpc_chttp2_transport));
init_transport(exec_ctx, t, channel_args, ep, is_client != 0); init_transport(exec_ctx, t, channel_args, ep, is_client != 0);
return &t->base; return &t->base;
} }

@ -128,7 +128,8 @@ typedef struct {
server_transport_data is an opaque pointer. If it is NULL, this call is server_transport_data is an opaque pointer. If it is NULL, this call is
on a client; if it is non-NULL, then it points to memory owned by the on a client; if it is non-NULL, then it points to memory owned by the
transport and is on the server. Most filters want to ignore this transport and is on the server. Most filters want to ignore this
argument. */ argument.
Implementations may assume that elem->call_data is all zeros. */
grpc_error *(*init_call_elem)(grpc_exec_ctx *exec_ctx, grpc_error *(*init_call_elem)(grpc_exec_ctx *exec_ctx,
grpc_call_element *elem, grpc_call_element *elem,
const grpc_call_element_args *args); const grpc_call_element_args *args);
@ -152,7 +153,8 @@ typedef struct {
is what needs initializing. is what needs initializing.
is_first, is_last designate this elements position in the stack, and are is_first, is_last designate this elements position in the stack, and are
useful for asserting correct configuration by upper layer code. useful for asserting correct configuration by upper layer code.
The filter does not need to do any chaining */ The filter does not need to do any chaining.
Implementations may assume that elem->call_data is all zeros. */
grpc_error *(*init_channel_elem)(grpc_exec_ctx *exec_ctx, grpc_error *(*init_channel_elem)(grpc_exec_ctx *exec_ctx,
grpc_channel_element *elem, grpc_channel_element *elem,
grpc_channel_element_args *args); grpc_channel_element_args *args);

@ -65,8 +65,7 @@ struct grpc_channel_stack_builder_iterator {
}; };
grpc_channel_stack_builder *grpc_channel_stack_builder_create(void) { grpc_channel_stack_builder *grpc_channel_stack_builder_create(void) {
grpc_channel_stack_builder *b = gpr_malloc(sizeof(*b)); grpc_channel_stack_builder *b = gpr_zalloc(sizeof(*b));
memset(b, 0, sizeof(*b));
b->begin.filter = NULL; b->begin.filter = NULL;
b->end.filter = NULL; b->end.filter = NULL;
@ -251,7 +250,7 @@ grpc_error *grpc_channel_stack_builder_finish(
size_t channel_stack_size = grpc_channel_stack_size(filters, num_filters); size_t channel_stack_size = grpc_channel_stack_size(filters, num_filters);
// allocate memory, with prefix_bytes followed by channel_stack_size // allocate memory, with prefix_bytes followed by channel_stack_size
*result = gpr_malloc(prefix_bytes + channel_stack_size); *result = gpr_zalloc(prefix_bytes + channel_stack_size);
// fetch a pointer to the channel stack // fetch a pointer to the channel stack
grpc_channel_stack *channel_stack = grpc_channel_stack *channel_stack =
(grpc_channel_stack *)((char *)(*result) + prefix_bytes); (grpc_channel_stack *)((char *)(*result) + prefix_bytes);

@ -144,7 +144,6 @@ static void inject_on_complete_cb(grpc_deadline_state* deadline_state,
void grpc_deadline_state_init(grpc_exec_ctx* exec_ctx, grpc_call_element* elem, void grpc_deadline_state_init(grpc_exec_ctx* exec_ctx, grpc_call_element* elem,
grpc_call_stack* call_stack) { grpc_call_stack* call_stack) {
grpc_deadline_state* deadline_state = elem->call_data; grpc_deadline_state* deadline_state = elem->call_data;
memset(deadline_state, 0, sizeof(*deadline_state));
deadline_state->call_stack = call_stack; deadline_state->call_stack = call_stack;
} }
@ -249,8 +248,6 @@ typedef struct server_call_data {
static grpc_error* init_call_elem(grpc_exec_ctx* exec_ctx, static grpc_error* init_call_elem(grpc_exec_ctx* exec_ctx,
grpc_call_element* elem, grpc_call_element* elem,
const grpc_call_element_args* args) { const grpc_call_element_args* args) {
// Note: size of call data is different between client and server.
memset(elem->call_data, 0, elem->filter->sizeof_call_data);
grpc_deadline_state_init(exec_ctx, elem, args->call_stack); grpc_deadline_state_init(exec_ctx, elem, args->call_stack);
grpc_deadline_state_start(exec_ctx, elem, args->deadline); grpc_deadline_state_start(exec_ctx, elem, args->deadline);
return GRPC_ERROR_NONE; return GRPC_ERROR_NONE;

@ -62,6 +62,7 @@ typedef struct grpc_deadline_state {
// elem->call_data is a grpc_deadline_state. // elem->call_data is a grpc_deadline_state.
// //
// assumes elem->call_data is zero'd
void grpc_deadline_state_init(grpc_exec_ctx* exec_ctx, grpc_call_element* elem, void grpc_deadline_state_init(grpc_exec_ctx* exec_ctx, grpc_call_element* elem,
grpc_call_stack* call_stack); grpc_call_stack* call_stack);
void grpc_deadline_state_destroy(grpc_exec_ctx* exec_ctx, void grpc_deadline_state_destroy(grpc_exec_ctx* exec_ctx,

@ -99,8 +99,7 @@ struct grpc_handshake_manager {
}; };
grpc_handshake_manager* grpc_handshake_manager_create() { grpc_handshake_manager* grpc_handshake_manager_create() {
grpc_handshake_manager* mgr = gpr_malloc(sizeof(grpc_handshake_manager)); grpc_handshake_manager* mgr = gpr_zalloc(sizeof(grpc_handshake_manager));
memset(mgr, 0, sizeof(*mgr));
gpr_mu_init(&mgr->mu); gpr_mu_init(&mgr->mu);
gpr_ref_init(&mgr->refs, 1); gpr_ref_init(&mgr->refs, 1);
return mgr; return mgr;

@ -345,7 +345,6 @@ static grpc_error *init_call_elem(grpc_exec_ctx *exec_ctx,
/* grab pointers to our data from the call element */ /* grab pointers to our data from the call element */
call_data *calld = elem->call_data; call_data *calld = elem->call_data;
/* initialize members */ /* initialize members */
memset(calld, 0, sizeof(*calld));
grpc_closure_init(&calld->hs_on_recv, hs_on_recv, elem, grpc_closure_init(&calld->hs_on_recv, hs_on_recv, elem,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_closure_init(&calld->hs_on_complete, hs_on_complete, elem, grpc_closure_init(&calld->hs_on_complete, hs_on_complete, elem,

@ -208,7 +208,6 @@ static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
grpc_channel_element_args* args) { grpc_channel_element_args* args) {
GPR_ASSERT(!args->is_last); GPR_ASSERT(!args->is_last);
channel_data* chand = elem->channel_data; channel_data* chand = elem->channel_data;
memset(chand, 0, sizeof(*chand));
chand->max_send_size = GRPC_DEFAULT_MAX_SEND_MESSAGE_LENGTH; chand->max_send_size = GRPC_DEFAULT_MAX_SEND_MESSAGE_LENGTH;
chand->max_recv_size = GRPC_DEFAULT_MAX_RECV_MESSAGE_LENGTH; chand->max_recv_size = GRPC_DEFAULT_MAX_RECV_MESSAGE_LENGTH;
for (size_t i = 0; i < args->channel_args->num_args; ++i) { for (size_t i = 0; i < args->channel_args->num_args; ++i) {

@ -118,8 +118,7 @@ static grpc_security_status httpcli_ssl_channel_security_connector_create(
return GRPC_SECURITY_ERROR; return GRPC_SECURITY_ERROR;
} }
c = gpr_malloc(sizeof(grpc_httpcli_ssl_channel_security_connector)); c = gpr_zalloc(sizeof(grpc_httpcli_ssl_channel_security_connector));
memset(c, 0, sizeof(grpc_httpcli_ssl_channel_security_connector));
gpr_ref_init(&c->base.base.refcount, 1); gpr_ref_init(&c->base.base.refcount, 1);
c->base.base.vtable = &httpcli_ssl_vtable; c->base.base.vtable = &httpcli_ssl_vtable;

@ -1131,8 +1131,7 @@ static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
*/ */
static grpc_pollset_set *pollset_set_create(void) { static grpc_pollset_set *pollset_set_create(void) {
grpc_pollset_set *pollset_set = gpr_malloc(sizeof(*pollset_set)); grpc_pollset_set *pollset_set = gpr_zalloc(sizeof(*pollset_set));
memset(pollset_set, 0, sizeof(*pollset_set));
gpr_mu_init(&pollset_set->mu); gpr_mu_init(&pollset_set->mu);
return pollset_set; return pollset_set;
} }

@ -53,6 +53,7 @@ typedef struct grpc_pollset grpc_pollset;
typedef struct grpc_pollset_worker grpc_pollset_worker; typedef struct grpc_pollset_worker grpc_pollset_worker;
size_t grpc_pollset_size(void); size_t grpc_pollset_size(void);
/* Initialize a pollset: assumes *pollset contains all zeros */
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu); void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu);
/* Begin shutting down the pollset, and call closure when done. /* Begin shutting down the pollset, and call closure when done.
* pollset's mutex must be held */ * pollset's mutex must be held */

@ -68,7 +68,6 @@ void grpc_pollset_global_shutdown(void) { gpr_mu_destroy(&grpc_polling_mu); }
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) { void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
*mu = &grpc_polling_mu; *mu = &grpc_polling_mu;
memset(pollset, 0, sizeof(grpc_pollset));
uv_timer_init(uv_default_loop(), &pollset->timer); uv_timer_init(uv_default_loop(), &pollset->timer);
pollset->shutting_down = 0; pollset->shutting_down = 0;
} }

@ -98,7 +98,6 @@ size_t grpc_pollset_size(void) { return sizeof(grpc_pollset); }
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) { void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
*mu = &grpc_polling_mu; *mu = &grpc_polling_mu;
memset(pollset, 0, sizeof(*pollset));
pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].next = pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].next =
pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].prev = pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].prev =
&pollset->root_worker; &pollset->root_worker;

@ -144,8 +144,7 @@ static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx,
} }
} }
connect = gpr_malloc(sizeof(grpc_uv_tcp_connect)); connect = gpr_zalloc(sizeof(grpc_uv_tcp_connect));
memset(connect, 0, sizeof(grpc_uv_tcp_connect));
connect->closure = closure; connect->closure = closure;
connect->endpoint = ep; connect->endpoint = ep;
connect->tcp_handle = gpr_malloc(sizeof(uv_tcp_t)); connect->tcp_handle = gpr_malloc(sizeof(uv_tcp_t));

@ -38,8 +38,7 @@
#include "src/core/lib/json/json.h" #include "src/core/lib/json/json.h"
grpc_json* grpc_json_create(grpc_json_type type) { grpc_json* grpc_json_create(grpc_json_type type) {
grpc_json* json = gpr_malloc(sizeof(*json)); grpc_json* json = gpr_zalloc(sizeof(*json));
memset(json, 0, sizeof(*json));
json->type = type; json->type = type;
return json; return json;

@ -91,10 +91,7 @@ void grpc_auth_context_release(grpc_auth_context *context) {
/* --- grpc_client_security_context --- */ /* --- grpc_client_security_context --- */
grpc_client_security_context *grpc_client_security_context_create(void) { grpc_client_security_context *grpc_client_security_context_create(void) {
grpc_client_security_context *ctx = return gpr_zalloc(sizeof(grpc_client_security_context));
gpr_malloc(sizeof(grpc_client_security_context));
memset(ctx, 0, sizeof(grpc_client_security_context));
return ctx;
} }
void grpc_client_security_context_destroy(void *ctx) { void grpc_client_security_context_destroy(void *ctx) {
@ -112,10 +109,7 @@ void grpc_client_security_context_destroy(void *ctx) {
/* --- grpc_server_security_context --- */ /* --- grpc_server_security_context --- */
grpc_server_security_context *grpc_server_security_context_create(void) { grpc_server_security_context *grpc_server_security_context_create(void) {
grpc_server_security_context *ctx = return gpr_zalloc(sizeof(grpc_server_security_context));
gpr_malloc(sizeof(grpc_server_security_context));
memset(ctx, 0, sizeof(grpc_server_security_context));
return ctx;
} }
void grpc_server_security_context_destroy(void *ctx) { void grpc_server_security_context_destroy(void *ctx) {
@ -132,8 +126,7 @@ void grpc_server_security_context_destroy(void *ctx) {
static grpc_auth_property_iterator empty_iterator = {NULL, 0, NULL}; static grpc_auth_property_iterator empty_iterator = {NULL, 0, NULL};
grpc_auth_context *grpc_auth_context_create(grpc_auth_context *chained) { grpc_auth_context *grpc_auth_context_create(grpc_auth_context *chained) {
grpc_auth_context *ctx = gpr_malloc(sizeof(grpc_auth_context)); grpc_auth_context *ctx = gpr_zalloc(sizeof(grpc_auth_context));
memset(ctx, 0, sizeof(grpc_auth_context));
gpr_ref_init(&ctx->refcount, 1); gpr_ref_init(&ctx->refcount, 1);
if (chained != NULL) { if (chained != NULL) {
ctx->chained = GRPC_AUTH_CONTEXT_REF(chained, "chained"); ctx->chained = GRPC_AUTH_CONTEXT_REF(chained, "chained");

@ -115,8 +115,7 @@ static void composite_call_get_request_metadata(
grpc_composite_call_credentials *c = (grpc_composite_call_credentials *)creds; grpc_composite_call_credentials *c = (grpc_composite_call_credentials *)creds;
grpc_composite_call_credentials_metadata_context *ctx; grpc_composite_call_credentials_metadata_context *ctx;
ctx = gpr_malloc(sizeof(grpc_composite_call_credentials_metadata_context)); ctx = gpr_zalloc(sizeof(grpc_composite_call_credentials_metadata_context));
memset(ctx, 0, sizeof(grpc_composite_call_credentials_metadata_context));
ctx->auth_md_context = auth_md_context; ctx->auth_md_context = auth_md_context;
ctx->user_data = user_data; ctx->user_data = user_data;
ctx->cb = cb; ctx->cb = cb;
@ -158,8 +157,7 @@ grpc_call_credentials *grpc_composite_call_credentials_create(
GPR_ASSERT(reserved == NULL); GPR_ASSERT(reserved == NULL);
GPR_ASSERT(creds1 != NULL); GPR_ASSERT(creds1 != NULL);
GPR_ASSERT(creds2 != NULL); GPR_ASSERT(creds2 != NULL);
c = gpr_malloc(sizeof(grpc_composite_call_credentials)); c = gpr_zalloc(sizeof(grpc_composite_call_credentials));
memset(c, 0, sizeof(grpc_composite_call_credentials));
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_COMPOSITE; c->base.type = GRPC_CALL_CREDENTIALS_TYPE_COMPOSITE;
c->base.vtable = &composite_call_credentials_vtable; c->base.vtable = &composite_call_credentials_vtable;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);
@ -167,8 +165,7 @@ grpc_call_credentials *grpc_composite_call_credentials_create(
creds2_array = get_creds_array(&creds2); creds2_array = get_creds_array(&creds2);
c->inner.num_creds = creds1_array.num_creds + creds2_array.num_creds; c->inner.num_creds = creds1_array.num_creds + creds2_array.num_creds;
creds_array_byte_size = c->inner.num_creds * sizeof(grpc_call_credentials *); creds_array_byte_size = c->inner.num_creds * sizeof(grpc_call_credentials *);
c->inner.creds_array = gpr_malloc(creds_array_byte_size); c->inner.creds_array = gpr_zalloc(creds_array_byte_size);
memset(c->inner.creds_array, 0, creds_array_byte_size);
for (i = 0; i < creds1_array.num_creds; i++) { for (i = 0; i < creds1_array.num_creds; i++) {
grpc_call_credentials *cur_creds = creds1_array.creds_array[i]; grpc_call_credentials *cur_creds = creds1_array.creds_array[i];
c->inner.creds_array[i] = grpc_call_credentials_ref(cur_creds); c->inner.creds_array[i] = grpc_call_credentials_ref(cur_creds);
@ -262,8 +259,7 @@ static grpc_channel_credentials_vtable composite_channel_credentials_vtable = {
grpc_channel_credentials *grpc_composite_channel_credentials_create( grpc_channel_credentials *grpc_composite_channel_credentials_create(
grpc_channel_credentials *channel_creds, grpc_call_credentials *call_creds, grpc_channel_credentials *channel_creds, grpc_call_credentials *call_creds,
void *reserved) { void *reserved) {
grpc_composite_channel_credentials *c = gpr_malloc(sizeof(*c)); grpc_composite_channel_credentials *c = gpr_zalloc(sizeof(*c));
memset(c, 0, sizeof(*c));
GPR_ASSERT(channel_creds != NULL && call_creds != NULL && reserved == NULL); GPR_ASSERT(channel_creds != NULL && call_creds != NULL && reserved == NULL);
GRPC_API_TRACE( GRPC_API_TRACE(
"grpc_composite_channel_credentials_create(channel_creds=%p, " "grpc_composite_channel_credentials_create(channel_creds=%p, "

@ -57,8 +57,7 @@ grpc_credentials_metadata_request *grpc_credentials_metadata_request_create(
grpc_call_credentials *creds, grpc_credentials_metadata_cb cb, grpc_call_credentials *creds, grpc_credentials_metadata_cb cb,
void *user_data) { void *user_data) {
grpc_credentials_metadata_request *r = grpc_credentials_metadata_request *r =
gpr_malloc(sizeof(grpc_credentials_metadata_request)); gpr_zalloc(sizeof(grpc_credentials_metadata_request));
memset(&r->response, 0, sizeof(r->response));
r->creds = grpc_call_credentials_ref(creds); r->creds = grpc_call_credentials_ref(creds);
r->cb = cb; r->cb = cb;
r->user_data = user_data; r->user_data = user_data;

@ -50,8 +50,7 @@ static void store_ensure_capacity(grpc_credentials_md_store *store) {
grpc_credentials_md_store *grpc_credentials_md_store_create( grpc_credentials_md_store *grpc_credentials_md_store_create(
size_t initial_capacity) { size_t initial_capacity) {
grpc_credentials_md_store *store = grpc_credentials_md_store *store =
gpr_malloc(sizeof(grpc_credentials_md_store)); gpr_zalloc(sizeof(grpc_credentials_md_store));
memset(store, 0, sizeof(grpc_credentials_md_store));
if (initial_capacity > 0) { if (initial_capacity > 0) {
store->entries = gpr_malloc(initial_capacity * sizeof(grpc_credentials_md)); store->entries = gpr_malloc(initial_capacity * sizeof(grpc_credentials_md));
store->allocated = initial_capacity; store->allocated = initial_capacity;

@ -71,8 +71,7 @@ static grpc_server_credentials_vtable
grpc_channel_credentials *grpc_fake_transport_security_credentials_create( grpc_channel_credentials *grpc_fake_transport_security_credentials_create(
void) { void) {
grpc_channel_credentials *c = gpr_malloc(sizeof(grpc_channel_credentials)); grpc_channel_credentials *c = gpr_zalloc(sizeof(grpc_channel_credentials));
memset(c, 0, sizeof(grpc_channel_credentials));
c->type = GRPC_CHANNEL_CREDENTIALS_TYPE_FAKE_TRANSPORT_SECURITY; c->type = GRPC_CHANNEL_CREDENTIALS_TYPE_FAKE_TRANSPORT_SECURITY;
c->vtable = &fake_transport_security_credentials_vtable; c->vtable = &fake_transport_security_credentials_vtable;
gpr_ref_init(&c->refcount, 1); gpr_ref_init(&c->refcount, 1);
@ -131,8 +130,7 @@ static grpc_call_credentials_vtable md_only_test_vtable = {
grpc_call_credentials *grpc_md_only_test_credentials_create( grpc_call_credentials *grpc_md_only_test_credentials_create(
const char *md_key, const char *md_value, int is_async) { const char *md_key, const char *md_value, int is_async) {
grpc_md_only_test_credentials *c = grpc_md_only_test_credentials *c =
gpr_malloc(sizeof(grpc_md_only_test_credentials)); gpr_zalloc(sizeof(grpc_md_only_test_credentials));
memset(c, 0, sizeof(grpc_md_only_test_credentials));
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2; c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2;
c->base.vtable = &md_only_test_vtable; c->base.vtable = &md_only_test_vtable;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);

@ -112,7 +112,7 @@ static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
on compute engine. */ on compute engine. */
gpr_timespec max_detection_delay = gpr_time_from_seconds(1, GPR_TIMESPAN); gpr_timespec max_detection_delay = gpr_time_from_seconds(1, GPR_TIMESPAN);
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &g_polling_mu); grpc_pollset_init(pollset, &g_polling_mu);
detector.pollent = grpc_polling_entity_create_from_pollset(pollset); detector.pollent = grpc_polling_entity_create_from_pollset(pollset);
detector.is_done = 0; detector.is_done = 0;

@ -72,8 +72,7 @@ grpc_call_credentials *grpc_google_iam_credentials_create(
GPR_ASSERT(reserved == NULL); GPR_ASSERT(reserved == NULL);
GPR_ASSERT(token != NULL); GPR_ASSERT(token != NULL);
GPR_ASSERT(authority_selector != NULL); GPR_ASSERT(authority_selector != NULL);
c = gpr_malloc(sizeof(grpc_google_iam_credentials)); c = gpr_zalloc(sizeof(grpc_google_iam_credentials));
memset(c, 0, sizeof(grpc_google_iam_credentials));
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_IAM; c->base.type = GRPC_CALL_CREDENTIALS_TYPE_IAM;
c->base.vtable = &iam_vtable; c->base.vtable = &iam_vtable;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);

@ -135,8 +135,7 @@ grpc_service_account_jwt_access_credentials_create_from_auth_json_key(
gpr_log(GPR_ERROR, "Invalid input for jwt credentials creation"); gpr_log(GPR_ERROR, "Invalid input for jwt credentials creation");
return NULL; return NULL;
} }
c = gpr_malloc(sizeof(grpc_service_account_jwt_access_credentials)); c = gpr_zalloc(sizeof(grpc_service_account_jwt_access_credentials));
memset(c, 0, sizeof(grpc_service_account_jwt_access_credentials));
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_JWT; c->base.type = GRPC_CALL_CREDENTIALS_TYPE_JWT;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);
c->base.vtable = &jwt_vtable; c->base.vtable = &jwt_vtable;

@ -144,8 +144,7 @@ static void jose_header_destroy(grpc_exec_ctx *exec_ctx, jose_header *h) {
static jose_header *jose_header_from_json(grpc_exec_ctx *exec_ctx, static jose_header *jose_header_from_json(grpc_exec_ctx *exec_ctx,
grpc_json *json, grpc_slice buffer) { grpc_json *json, grpc_slice buffer) {
grpc_json *cur; grpc_json *cur;
jose_header *h = gpr_malloc(sizeof(jose_header)); jose_header *h = gpr_zalloc(sizeof(jose_header));
memset(h, 0, sizeof(jose_header));
h->buffer = buffer; h->buffer = buffer;
for (cur = json->child; cur != NULL; cur = cur->next) { for (cur = json->child; cur != NULL; cur = cur->next) {
if (strcmp(cur->key, "alg") == 0) { if (strcmp(cur->key, "alg") == 0) {
@ -363,8 +362,7 @@ static verifier_cb_ctx *verifier_cb_ctx_create(
const char *signed_jwt, size_t signed_jwt_len, void *user_data, const char *signed_jwt, size_t signed_jwt_len, void *user_data,
grpc_jwt_verification_done_cb cb) { grpc_jwt_verification_done_cb cb) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
verifier_cb_ctx *ctx = gpr_malloc(sizeof(verifier_cb_ctx)); verifier_cb_ctx *ctx = gpr_zalloc(sizeof(verifier_cb_ctx));
memset(ctx, 0, sizeof(verifier_cb_ctx));
ctx->verifier = verifier; ctx->verifier = verifier;
ctx->pollent = grpc_polling_entity_create_from_pollset(pollset); ctx->pollent = grpc_polling_entity_create_from_pollset(pollset);
ctx->header = header; ctx->header = header;
@ -878,8 +876,7 @@ error:
grpc_jwt_verifier *grpc_jwt_verifier_create( grpc_jwt_verifier *grpc_jwt_verifier_create(
const grpc_jwt_verifier_email_domain_key_url_mapping *mappings, const grpc_jwt_verifier_email_domain_key_url_mapping *mappings,
size_t num_mappings) { size_t num_mappings) {
grpc_jwt_verifier *v = gpr_malloc(sizeof(grpc_jwt_verifier)); grpc_jwt_verifier *v = gpr_zalloc(sizeof(grpc_jwt_verifier));
memset(v, 0, sizeof(grpc_jwt_verifier));
grpc_httpcli_context_init(&v->http_ctx); grpc_httpcli_context_init(&v->http_ctx);
/* We know at least of one mapping. */ /* We know at least of one mapping. */

@ -389,8 +389,7 @@ grpc_refresh_token_credentials_create_from_auth_refresh_token(
gpr_log(GPR_ERROR, "Invalid input for refresh token credentials creation"); gpr_log(GPR_ERROR, "Invalid input for refresh token credentials creation");
return NULL; return NULL;
} }
c = gpr_malloc(sizeof(grpc_google_refresh_token_credentials)); c = gpr_zalloc(sizeof(grpc_google_refresh_token_credentials));
memset(c, 0, sizeof(grpc_google_refresh_token_credentials));
init_oauth2_token_fetcher(&c->base, refresh_token_fetch_oauth2); init_oauth2_token_fetcher(&c->base, refresh_token_fetch_oauth2);
c->base.base.vtable = &refresh_token_vtable; c->base.base.vtable = &refresh_token_vtable;
c->refresh_token = refresh_token; c->refresh_token = refresh_token;
@ -450,14 +449,13 @@ static grpc_call_credentials_vtable access_token_vtable = {
grpc_call_credentials *grpc_access_token_credentials_create( grpc_call_credentials *grpc_access_token_credentials_create(
const char *access_token, void *reserved) { const char *access_token, void *reserved) {
grpc_access_token_credentials *c = grpc_access_token_credentials *c =
gpr_malloc(sizeof(grpc_access_token_credentials)); gpr_zalloc(sizeof(grpc_access_token_credentials));
char *token_md_value; char *token_md_value;
GRPC_API_TRACE( GRPC_API_TRACE(
"grpc_access_token_credentials_create(access_token=<redacted>, " "grpc_access_token_credentials_create(access_token=<redacted>, "
"reserved=%p)", "reserved=%p)",
1, (reserved)); 1, (reserved));
GPR_ASSERT(reserved == NULL); GPR_ASSERT(reserved == NULL);
memset(c, 0, sizeof(grpc_access_token_credentials));
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2; c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2;
c->base.vtable = &access_token_vtable; c->base.vtable = &access_token_vtable;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);

@ -126,8 +126,7 @@ static void plugin_get_request_metadata(grpc_exec_ctx *exec_ctx,
void *user_data) { void *user_data) {
grpc_plugin_credentials *c = (grpc_plugin_credentials *)creds; grpc_plugin_credentials *c = (grpc_plugin_credentials *)creds;
if (c->plugin.get_metadata != NULL) { if (c->plugin.get_metadata != NULL) {
grpc_metadata_plugin_request *request = gpr_malloc(sizeof(*request)); grpc_metadata_plugin_request *request = gpr_zalloc(sizeof(*request));
memset(request, 0, sizeof(*request));
request->user_data = user_data; request->user_data = user_data;
request->cb = cb; request->cb = cb;
c->plugin.get_metadata(c->plugin.state, context, c->plugin.get_metadata(c->plugin.state, context,
@ -142,11 +141,10 @@ static grpc_call_credentials_vtable plugin_vtable = {
grpc_call_credentials *grpc_metadata_credentials_create_from_plugin( grpc_call_credentials *grpc_metadata_credentials_create_from_plugin(
grpc_metadata_credentials_plugin plugin, void *reserved) { grpc_metadata_credentials_plugin plugin, void *reserved) {
grpc_plugin_credentials *c = gpr_malloc(sizeof(*c)); grpc_plugin_credentials *c = gpr_zalloc(sizeof(*c));
GRPC_API_TRACE("grpc_metadata_credentials_create_from_plugin(reserved=%p)", 1, GRPC_API_TRACE("grpc_metadata_credentials_create_from_plugin(reserved=%p)", 1,
(reserved)); (reserved));
GPR_ASSERT(reserved == NULL); GPR_ASSERT(reserved == NULL);
memset(c, 0, sizeof(*c));
c->base.type = plugin.type; c->base.type = plugin.type;
c->base.vtable = &plugin_vtable; c->base.vtable = &plugin_vtable;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);

@ -121,14 +121,13 @@ static void ssl_build_config(const char *pem_root_certs,
grpc_channel_credentials *grpc_ssl_credentials_create( grpc_channel_credentials *grpc_ssl_credentials_create(
const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair,
void *reserved) { void *reserved) {
grpc_ssl_credentials *c = gpr_malloc(sizeof(grpc_ssl_credentials)); grpc_ssl_credentials *c = gpr_zalloc(sizeof(grpc_ssl_credentials));
GRPC_API_TRACE( GRPC_API_TRACE(
"grpc_ssl_credentials_create(pem_root_certs=%s, " "grpc_ssl_credentials_create(pem_root_certs=%s, "
"pem_key_cert_pair=%p, " "pem_key_cert_pair=%p, "
"reserved=%p)", "reserved=%p)",
3, (pem_root_certs, pem_key_cert_pair, reserved)); 3, (pem_root_certs, pem_key_cert_pair, reserved));
GPR_ASSERT(reserved == NULL); GPR_ASSERT(reserved == NULL);
memset(c, 0, sizeof(grpc_ssl_credentials));
c->base.type = GRPC_CHANNEL_CREDENTIALS_TYPE_SSL; c->base.type = GRPC_CHANNEL_CREDENTIALS_TYPE_SSL;
c->base.vtable = &ssl_vtable; c->base.vtable = &ssl_vtable;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);
@ -225,7 +224,7 @@ grpc_server_credentials *grpc_ssl_server_credentials_create_ex(
grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_client_certificate_request_type client_certificate_request,
void *reserved) { void *reserved) {
grpc_ssl_server_credentials *c = grpc_ssl_server_credentials *c =
gpr_malloc(sizeof(grpc_ssl_server_credentials)); gpr_zalloc(sizeof(grpc_ssl_server_credentials));
GRPC_API_TRACE( GRPC_API_TRACE(
"grpc_ssl_server_credentials_create_ex(" "grpc_ssl_server_credentials_create_ex("
"pem_root_certs=%s, pem_key_cert_pairs=%p, num_key_cert_pairs=%lu, " "pem_root_certs=%s, pem_key_cert_pairs=%p, num_key_cert_pairs=%lu, "
@ -233,7 +232,6 @@ grpc_server_credentials *grpc_ssl_server_credentials_create_ex(
5, (pem_root_certs, pem_key_cert_pairs, (unsigned long)num_key_cert_pairs, 5, (pem_root_certs, pem_key_cert_pairs, (unsigned long)num_key_cert_pairs,
client_certificate_request, reserved)); client_certificate_request, reserved));
GPR_ASSERT(reserved == NULL); GPR_ASSERT(reserved == NULL);
memset(c, 0, sizeof(grpc_ssl_server_credentials));
c->base.type = GRPC_CHANNEL_CREDENTIALS_TYPE_SSL; c->base.type = GRPC_CHANNEL_CREDENTIALS_TYPE_SSL;
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);
c->base.vtable = &ssl_server_vtable; c->base.vtable = &ssl_server_vtable;

@ -412,8 +412,7 @@ static grpc_security_connector_vtable fake_server_vtable = {
grpc_channel_security_connector *grpc_fake_channel_security_connector_create( grpc_channel_security_connector *grpc_fake_channel_security_connector_create(
grpc_call_credentials *request_metadata_creds, const char *target, grpc_call_credentials *request_metadata_creds, const char *target,
const grpc_channel_args *args) { const grpc_channel_args *args) {
grpc_fake_channel_security_connector *c = gpr_malloc(sizeof(*c)); grpc_fake_channel_security_connector *c = gpr_zalloc(sizeof(*c));
memset(c, 0, sizeof(*c));
gpr_ref_init(&c->base.base.refcount, 1); gpr_ref_init(&c->base.base.refcount, 1);
c->base.base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME; c->base.base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME;
c->base.base.vtable = &fake_channel_vtable; c->base.base.vtable = &fake_channel_vtable;
@ -435,8 +434,7 @@ grpc_channel_security_connector *grpc_fake_channel_security_connector_create(
grpc_server_security_connector *grpc_fake_server_security_connector_create( grpc_server_security_connector *grpc_fake_server_security_connector_create(
void) { void) {
grpc_server_security_connector *c = grpc_server_security_connector *c =
gpr_malloc(sizeof(grpc_server_security_connector)); gpr_zalloc(sizeof(grpc_server_security_connector));
memset(c, 0, sizeof(*c));
gpr_ref_init(&c->base.refcount, 1); gpr_ref_init(&c->base.refcount, 1);
c->base.vtable = &fake_server_vtable; c->base.vtable = &fake_server_vtable;
c->base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME; c->base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME;
@ -815,8 +813,7 @@ grpc_security_status grpc_ssl_channel_security_connector_create(
pem_root_certs_size = config->pem_root_certs_size; pem_root_certs_size = config->pem_root_certs_size;
} }
c = gpr_malloc(sizeof(grpc_ssl_channel_security_connector)); c = gpr_zalloc(sizeof(grpc_ssl_channel_security_connector));
memset(c, 0, sizeof(grpc_ssl_channel_security_connector));
gpr_ref_init(&c->base.base.refcount, 1); gpr_ref_init(&c->base.base.refcount, 1);
c->base.base.vtable = &ssl_channel_vtable; c->base.base.vtable = &ssl_channel_vtable;
@ -877,8 +874,7 @@ grpc_security_status grpc_ssl_server_security_connector_create(
gpr_log(GPR_ERROR, "An SSL server needs a key and a cert."); gpr_log(GPR_ERROR, "An SSL server needs a key and a cert.");
goto error; goto error;
} }
c = gpr_malloc(sizeof(grpc_ssl_server_security_connector)); c = gpr_zalloc(sizeof(grpc_ssl_server_security_connector));
memset(c, 0, sizeof(grpc_ssl_server_security_connector));
gpr_ref_init(&c->base.base.refcount, 1); gpr_ref_init(&c->base.base.refcount, 1);
c->base.base.url_scheme = GRPC_SSL_URL_SCHEME; c->base.base.url_scheme = GRPC_SSL_URL_SCHEME;

@ -387,8 +387,7 @@ static const grpc_handshaker_vtable security_handshaker_vtable = {
static grpc_handshaker *security_handshaker_create( static grpc_handshaker *security_handshaker_create(
grpc_exec_ctx *exec_ctx, tsi_handshaker *handshaker, grpc_exec_ctx *exec_ctx, tsi_handshaker *handshaker,
grpc_security_connector *connector) { grpc_security_connector *connector) {
security_handshaker *h = gpr_malloc(sizeof(security_handshaker)); security_handshaker *h = gpr_zalloc(sizeof(security_handshaker));
memset(h, 0, sizeof(security_handshaker));
grpc_handshaker_init(&security_handshaker_vtable, &h->base); grpc_handshaker_init(&security_handshaker_vtable, &h->base);
h->handshaker = handshaker; h->handshaker = handshaker;
h->connector = GRPC_SECURITY_CONNECTOR_REF(connector, "handshake"); h->connector = GRPC_SECURITY_CONNECTOR_REF(connector, "handshake");

@ -82,15 +82,13 @@ static void grpc_slice_hash_table_add(
grpc_slice_hash_table* grpc_slice_hash_table_create( grpc_slice_hash_table* grpc_slice_hash_table_create(
size_t num_entries, grpc_slice_hash_table_entry* entries) { size_t num_entries, grpc_slice_hash_table_entry* entries) {
grpc_slice_hash_table* table = gpr_malloc(sizeof(*table)); grpc_slice_hash_table* table = gpr_zalloc(sizeof(*table));
memset(table, 0, sizeof(*table));
gpr_ref_init(&table->refs, 1); gpr_ref_init(&table->refs, 1);
// Quadratic probing gets best performance when the table is no more // Quadratic probing gets best performance when the table is no more
// than half full. // than half full.
table->size = num_entries * 2; table->size = num_entries * 2;
const size_t entry_size = sizeof(grpc_slice_hash_table_entry) * table->size; const size_t entry_size = sizeof(grpc_slice_hash_table_entry) * table->size;
table->entries = gpr_malloc(entry_size); table->entries = gpr_zalloc(entry_size);
memset(table->entries, 0, entry_size);
for (size_t i = 0; i < num_entries; ++i) { for (size_t i = 0; i < num_entries; ++i) {
grpc_slice_hash_table_entry* entry = &entries[i]; grpc_slice_hash_table_entry* entry = &entries[i];
grpc_slice_hash_table_add(table, entry->key, entry->value, entry->vtable); grpc_slice_hash_table_add(table, entry->key, entry->value, entry->vtable);

@ -144,8 +144,7 @@ static void grow_shard(slice_shard *shard) {
GPR_TIMER_BEGIN("grow_strtab", 0); GPR_TIMER_BEGIN("grow_strtab", 0);
strtab = gpr_malloc(sizeof(interned_slice_refcount *) * capacity); strtab = gpr_zalloc(sizeof(interned_slice_refcount *) * capacity);
memset(strtab, 0, sizeof(interned_slice_refcount *) * capacity);
for (i = 0; i < shard->capacity; i++) { for (i = 0; i < shard->capacity; i++) {
for (s = shard->strs[i]; s; s = next) { for (s = shard->strs[i]; s; s = next) {
@ -296,8 +295,7 @@ void grpc_slice_intern_init(void) {
gpr_mu_init(&shard->mu); gpr_mu_init(&shard->mu);
shard->count = 0; shard->count = 0;
shard->capacity = INITIAL_SHARD_CAPACITY; shard->capacity = INITIAL_SHARD_CAPACITY;
shard->strs = gpr_malloc(sizeof(*shard->strs) * shard->capacity); shard->strs = gpr_zalloc(sizeof(*shard->strs) * shard->capacity);
memset(shard->strs, 0, sizeof(*shard->strs) * shard->capacity);
} }
for (size_t i = 0; i < GPR_ARRAY_SIZE(static_metadata_hash); i++) { for (size_t i = 0; i < GPR_ARRAY_SIZE(static_metadata_hash); i++) {
static_metadata_hash[i].hash = 0; static_metadata_hash[i].hash = 0;

@ -36,9 +36,19 @@
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include <grpc/support/port_platform.h> #include <grpc/support/port_platform.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include "src/core/lib/profiling/timers.h" #include "src/core/lib/profiling/timers.h"
static gpr_allocation_functions g_alloc_functions = {malloc, realloc, free}; static void *zalloc_with_calloc(size_t sz) { return calloc(sz, 1); }
static void *zalloc_with_gpr_malloc(size_t sz) {
void *p = gpr_malloc(sz);
memset(p, 0, sz);
return p;
}
static gpr_allocation_functions g_alloc_functions = {malloc, zalloc_with_calloc,
realloc, free};
gpr_allocation_functions gpr_get_allocation_functions() { gpr_allocation_functions gpr_get_allocation_functions() {
return g_alloc_functions; return g_alloc_functions;
@ -48,6 +58,9 @@ void gpr_set_allocation_functions(gpr_allocation_functions functions) {
GPR_ASSERT(functions.malloc_fn != NULL); GPR_ASSERT(functions.malloc_fn != NULL);
GPR_ASSERT(functions.realloc_fn != NULL); GPR_ASSERT(functions.realloc_fn != NULL);
GPR_ASSERT(functions.free_fn != NULL); GPR_ASSERT(functions.free_fn != NULL);
if (functions.zalloc_fn == NULL) {
functions.zalloc_fn = zalloc_with_gpr_malloc;
}
g_alloc_functions = functions; g_alloc_functions = functions;
} }
@ -63,6 +76,18 @@ void *gpr_malloc(size_t size) {
return p; return p;
} }
void *gpr_zalloc(size_t size) {
void *p;
if (size == 0) return NULL;
GPR_TIMER_BEGIN("gpr_zalloc", 0);
p = g_alloc_functions.zalloc_fn(size);
if (!p) {
abort();
}
GPR_TIMER_END("gpr_zalloc", 0);
return p;
}
void gpr_free(void *p) { void gpr_free(void *p) {
GPR_TIMER_BEGIN("gpr_free", 0); GPR_TIMER_BEGIN("gpr_free", 0);
g_alloc_functions.free_fn(p); g_alloc_functions.free_fn(p);

@ -71,8 +71,7 @@ struct gpr_cmdline {
static int normal_state(gpr_cmdline *cl, char *arg); static int normal_state(gpr_cmdline *cl, char *arg);
gpr_cmdline *gpr_cmdline_create(const char *description) { gpr_cmdline *gpr_cmdline_create(const char *description) {
gpr_cmdline *cl = gpr_malloc(sizeof(gpr_cmdline)); gpr_cmdline *cl = gpr_zalloc(sizeof(gpr_cmdline));
memset(cl, 0, sizeof(gpr_cmdline));
cl->description = description; cl->description = description;
cl->state = normal_state; cl->state = normal_state;
@ -101,8 +100,7 @@ static void add_arg(gpr_cmdline *cl, const char *name, const char *help,
GPR_ASSERT(0 != strcmp(a->name, name)); GPR_ASSERT(0 != strcmp(a->name, name));
} }
a = gpr_malloc(sizeof(arg)); a = gpr_zalloc(sizeof(arg));
memset(a, 0, sizeof(arg));
a->name = name; a->name = name;
a->help = help; a->help = help;
a->type = type; a->type = type;

@ -102,8 +102,7 @@ gpr_histogram *gpr_histogram_create(double resolution,
h->num_buckets = bucket_for_unchecked(h, max_bucket_start) + 1; h->num_buckets = bucket_for_unchecked(h, max_bucket_start) + 1;
GPR_ASSERT(h->num_buckets > 1); GPR_ASSERT(h->num_buckets > 1);
GPR_ASSERT(h->num_buckets < 100000000); GPR_ASSERT(h->num_buckets < 100000000);
h->buckets = gpr_malloc(sizeof(uint32_t) * h->num_buckets); h->buckets = gpr_zalloc(sizeof(uint32_t) * h->num_buckets);
memset(h->buckets, 0, sizeof(uint32_t) * h->num_buckets);
return h; return h;
} }

@ -76,8 +76,7 @@ gpr_subprocess *gpr_subprocess_create(int argc, const char **argv) {
_exit(1); _exit(1);
return NULL; return NULL;
} else { } else {
r = gpr_malloc(sizeof(gpr_subprocess)); r = gpr_zalloc(sizeof(gpr_subprocess));
memset(r, 0, sizeof(*r));
r->pid = pid; r->pid = pid;
return r; return r;
} }

@ -272,9 +272,8 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
grpc_channel_get_channel_stack(args->channel); grpc_channel_get_channel_stack(args->channel);
grpc_call *call; grpc_call *call;
GPR_TIMER_BEGIN("grpc_call_create", 0); GPR_TIMER_BEGIN("grpc_call_create", 0);
call = gpr_malloc(sizeof(grpc_call) + channel_stack->call_stack_size); call = gpr_zalloc(sizeof(grpc_call) + channel_stack->call_stack_size);
*out_call = call; *out_call = call;
memset(call, 0, sizeof(grpc_call));
gpr_mu_init(&call->mu); gpr_mu_init(&call->mu);
call->channel = args->channel; call->channel = args->channel;
call->cq = args->cq; call->cq = args->cq;
@ -1386,7 +1385,6 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
goto done; goto done;
} }
/* TODO(ctiller): this feels like it could be made lock-free */
bctl = allocate_batch_control(call, ops, nops); bctl = allocate_batch_control(call, ops, nops);
if (bctl == NULL) { if (bctl == NULL) {
return GRPC_CALL_ERROR_TOO_MANY_OPERATIONS; return GRPC_CALL_ERROR_TOO_MANY_OPERATIONS;

@ -118,7 +118,7 @@ grpc_completion_queue *grpc_completion_queue_create(void *reserved) {
GRPC_API_TRACE("grpc_completion_queue_create(reserved=%p)", 1, (reserved)); GRPC_API_TRACE("grpc_completion_queue_create(reserved=%p)", 1, (reserved));
cc = gpr_malloc(sizeof(grpc_completion_queue) + grpc_pollset_size()); cc = gpr_zalloc(sizeof(grpc_completion_queue) + grpc_pollset_size());
grpc_pollset_init(POLLSET_FROM_CQ(cc), &cc->mu); grpc_pollset_init(POLLSET_FROM_CQ(cc), &cc->mu);
#ifndef NDEBUG #ifndef NDEBUG
cc->outstanding_tags = NULL; cc->outstanding_tags = NULL;

@ -1016,12 +1016,10 @@ void grpc_server_register_non_listening_completion_queue(
grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) { grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved)); GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved));
grpc_server *server = gpr_malloc(sizeof(grpc_server)); grpc_server *server = gpr_zalloc(sizeof(grpc_server));
GPR_ASSERT(grpc_is_initialized() && "call grpc_init()"); GPR_ASSERT(grpc_is_initialized() && "call grpc_init()");
memset(server, 0, sizeof(grpc_server));
gpr_mu_init(&server->mu_global); gpr_mu_init(&server->mu_global);
gpr_mu_init(&server->mu_call); gpr_mu_init(&server->mu_call);
@ -1070,8 +1068,7 @@ void *grpc_server_register_method(
flags); flags);
return NULL; return NULL;
} }
m = gpr_malloc(sizeof(registered_method)); m = gpr_zalloc(sizeof(registered_method));
memset(m, 0, sizeof(*m));
m->method = gpr_strdup(method); m->method = gpr_strdup(method);
m->host = gpr_strdup(host); m->host = gpr_strdup(host);
m->next = server->registered_methods; m->next = server->registered_methods;
@ -1175,8 +1172,7 @@ void grpc_server_setup_transport(grpc_exec_ctx *exec_ctx, grpc_server *s,
if (num_registered_methods > 0) { if (num_registered_methods > 0) {
slots = 2 * num_registered_methods; slots = 2 * num_registered_methods;
alloc = sizeof(channel_registered_method) * slots; alloc = sizeof(channel_registered_method) * slots;
chand->registered_methods = gpr_malloc(alloc); chand->registered_methods = gpr_zalloc(alloc);
memset(chand->registered_methods, 0, alloc);
for (rm = s->registered_methods; rm; rm = rm->next) { for (rm = s->registered_methods; rm; rm = rm->next) {
grpc_slice host; grpc_slice host;
bool has_host; bool has_host;

@ -130,8 +130,7 @@ void grpc_mdctx_global_init(void) {
shard->count = 0; shard->count = 0;
gpr_atm_no_barrier_store(&shard->free_estimate, 0); gpr_atm_no_barrier_store(&shard->free_estimate, 0);
shard->capacity = INITIAL_SHARD_CAPACITY; shard->capacity = INITIAL_SHARD_CAPACITY;
shard->elems = gpr_malloc(sizeof(*shard->elems) * shard->capacity); shard->elems = gpr_zalloc(sizeof(*shard->elems) * shard->capacity);
memset(shard->elems, 0, sizeof(*shard->elems) * shard->capacity);
} }
} }
@ -216,8 +215,7 @@ static void grow_mdtab(mdtab_shard *shard) {
GPR_TIMER_BEGIN("grow_mdtab", 0); GPR_TIMER_BEGIN("grow_mdtab", 0);
mdtab = gpr_malloc(sizeof(interned_metadata *) * capacity); mdtab = gpr_zalloc(sizeof(interned_metadata *) * capacity);
memset(mdtab, 0, sizeof(interned_metadata *) * capacity);
for (i = 0; i < shard->capacity; i++) { for (i = 0; i < shard->capacity; i++) {
for (md = shard->elems[i]; md; md = next) { for (md = shard->elems[i]; md; md = next) {

@ -213,6 +213,7 @@ size_t grpc_transport_stream_size(grpc_transport *transport);
/* Initialize transport data for a stream. /* Initialize transport data for a stream.
Returns 0 on success, any other (transport-defined) value for failure. Returns 0 on success, any other (transport-defined) value for failure.
May assume that stream contains all-zeros.
Arguments: Arguments:
transport - the transport on which to create this stream transport - the transport on which to create this stream

@ -502,8 +502,7 @@ static const tsi_handshaker_vtable handshaker_vtable = {
}; };
tsi_handshaker *tsi_create_fake_handshaker(int is_client) { tsi_handshaker *tsi_create_fake_handshaker(int is_client) {
tsi_fake_handshaker *impl = gpr_malloc(sizeof(*impl)); tsi_fake_handshaker *impl = gpr_zalloc(sizeof(*impl));
memset(impl, 0, sizeof(*impl));
impl->base.vtable = &handshaker_vtable; impl->base.vtable = &handshaker_vtable;
impl->is_client = is_client; impl->is_client = is_client;
impl->result = TSI_HANDSHAKE_IN_PROGRESS; impl->result = TSI_HANDSHAKE_IN_PROGRESS;
@ -519,8 +518,7 @@ tsi_handshaker *tsi_create_fake_handshaker(int is_client) {
tsi_frame_protector *tsi_create_fake_protector( tsi_frame_protector *tsi_create_fake_protector(
size_t *max_protected_frame_size) { size_t *max_protected_frame_size) {
tsi_fake_frame_protector *impl = gpr_malloc(sizeof(*impl)); tsi_fake_frame_protector *impl = gpr_zalloc(sizeof(*impl));
memset(impl, 0, sizeof(*impl));
impl->max_frame_size = (max_protected_frame_size == NULL) impl->max_frame_size = (max_protected_frame_size == NULL)
? TSI_FAKE_DEFAULT_FRAME_SIZE ? TSI_FAKE_DEFAULT_FRAME_SIZE
: *max_protected_frame_size; : *max_protected_frame_size;

@ -976,9 +976,7 @@ static tsi_result ssl_handshaker_extract_peer(tsi_handshaker *self,
if (alpn_selected != NULL) { if (alpn_selected != NULL) {
size_t i; size_t i;
tsi_peer_property *new_properties = tsi_peer_property *new_properties =
gpr_malloc(sizeof(*new_properties) * (peer->property_count + 1)); gpr_zalloc(sizeof(*new_properties) * (peer->property_count + 1));
memset(new_properties, 0,
sizeof(*new_properties) * (peer->property_count + 1));
for (i = 0; i < peer->property_count; i++) { for (i = 0; i < peer->property_count; i++) {
new_properties[i] = peer->properties[i]; new_properties[i] = peer->properties[i];
} }
@ -1002,8 +1000,7 @@ static tsi_result ssl_handshaker_create_frame_protector(
size_t actual_max_output_protected_frame_size = size_t actual_max_output_protected_frame_size =
TSI_SSL_MAX_PROTECTED_FRAME_SIZE_UPPER_BOUND; TSI_SSL_MAX_PROTECTED_FRAME_SIZE_UPPER_BOUND;
tsi_ssl_handshaker *impl = (tsi_ssl_handshaker *)self; tsi_ssl_handshaker *impl = (tsi_ssl_handshaker *)self;
tsi_ssl_frame_protector *protector_impl = gpr_malloc(sizeof(*protector_impl)); tsi_ssl_frame_protector *protector_impl = gpr_zalloc(sizeof(*protector_impl));
memset(protector_impl, 0, sizeof(*protector_impl));
if (max_output_protected_frame_size != NULL) { if (max_output_protected_frame_size != NULL) {
if (*max_output_protected_frame_size > if (*max_output_protected_frame_size >
@ -1119,8 +1116,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX *ctx, int is_client,
SSL_set_accept_state(ssl); SSL_set_accept_state(ssl);
} }
impl = gpr_malloc(sizeof(*impl)); impl = gpr_zalloc(sizeof(*impl));
memset(impl, 0, sizeof(*impl));
impl->ssl = ssl; impl->ssl = ssl;
impl->into_ssl = into_ssl; impl->into_ssl = into_ssl;
impl->from_ssl = from_ssl; impl->from_ssl = from_ssl;
@ -1338,8 +1334,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory(
return TSI_INVALID_ARGUMENT; return TSI_INVALID_ARGUMENT;
} }
impl = gpr_malloc(sizeof(*impl)); impl = gpr_zalloc(sizeof(*impl));
memset(impl, 0, sizeof(*impl));
impl->ssl_context = ssl_context; impl->ssl_context = ssl_context;
do { do {
@ -1433,17 +1428,13 @@ tsi_result tsi_create_ssl_server_handshaker_factory_ex(
return TSI_INVALID_ARGUMENT; return TSI_INVALID_ARGUMENT;
} }
impl = gpr_malloc(sizeof(*impl)); impl = gpr_zalloc(sizeof(*impl));
memset(impl, 0, sizeof(*impl));
impl->base.create_handshaker = impl->base.create_handshaker =
ssl_server_handshaker_factory_create_handshaker; ssl_server_handshaker_factory_create_handshaker;
impl->base.destroy = ssl_server_handshaker_factory_destroy; impl->base.destroy = ssl_server_handshaker_factory_destroy;
impl->ssl_contexts = gpr_malloc(key_cert_pair_count * sizeof(SSL_CTX *)); impl->ssl_contexts = gpr_zalloc(key_cert_pair_count * sizeof(SSL_CTX *));
memset(impl->ssl_contexts, 0, key_cert_pair_count * sizeof(SSL_CTX *));
impl->ssl_context_x509_subject_names = impl->ssl_context_x509_subject_names =
gpr_malloc(key_cert_pair_count * sizeof(tsi_peer)); gpr_zalloc(key_cert_pair_count * sizeof(tsi_peer));
memset(impl->ssl_context_x509_subject_names, 0,
key_cert_pair_count * sizeof(tsi_peer));
if (impl->ssl_contexts == NULL || if (impl->ssl_contexts == NULL ||
impl->ssl_context_x509_subject_names == NULL) { impl->ssl_context_x509_subject_names == NULL) {
tsi_ssl_handshaker_factory_destroy(&impl->base); tsi_ssl_handshaker_factory_destroy(&impl->base);

@ -231,8 +231,7 @@ tsi_result tsi_construct_allocated_string_peer_property(
*property = tsi_init_peer_property(); *property = tsi_init_peer_property();
if (name != NULL) property->name = gpr_strdup(name); if (name != NULL) property->name = gpr_strdup(name);
if (value_length > 0) { if (value_length > 0) {
property->value.data = gpr_malloc(value_length); property->value.data = gpr_zalloc(value_length);
memset(property->value.data, 0, value_length);
property->value.length = value_length; property->value.length = value_length;
} }
return TSI_OK; return TSI_OK;
@ -260,8 +259,7 @@ tsi_result tsi_construct_string_peer_property(const char *name,
tsi_result tsi_construct_peer(size_t property_count, tsi_peer *peer) { tsi_result tsi_construct_peer(size_t property_count, tsi_peer *peer) {
memset(peer, 0, sizeof(tsi_peer)); memset(peer, 0, sizeof(tsi_peer));
if (property_count > 0) { if (property_count > 0) {
peer->properties = gpr_malloc(property_count * sizeof(tsi_peer_property)); peer->properties = gpr_zalloc(property_count * sizeof(tsi_peer_property));
memset(peer->properties, 0, property_count * sizeof(tsi_peer_property));
peer->property_count = property_count; peer->property_count = property_count;
} }
return TSI_OK; return TSI_OK;

@ -220,6 +220,7 @@ grpc_slice_buffer_move_first_into_buffer_type grpc_slice_buffer_move_first_into_
grpc_slice_buffer_take_first_type grpc_slice_buffer_take_first_import; grpc_slice_buffer_take_first_type grpc_slice_buffer_take_first_import;
grpc_slice_buffer_undo_take_first_type grpc_slice_buffer_undo_take_first_import; grpc_slice_buffer_undo_take_first_type grpc_slice_buffer_undo_take_first_import;
gpr_malloc_type gpr_malloc_import; gpr_malloc_type gpr_malloc_import;
gpr_zalloc_type gpr_zalloc_import;
gpr_free_type gpr_free_import; gpr_free_type gpr_free_import;
gpr_realloc_type gpr_realloc_import; gpr_realloc_type gpr_realloc_import;
gpr_malloc_aligned_type gpr_malloc_aligned_import; gpr_malloc_aligned_type gpr_malloc_aligned_import;
@ -512,6 +513,7 @@ void grpc_rb_load_imports(HMODULE library) {
grpc_slice_buffer_take_first_import = (grpc_slice_buffer_take_first_type) GetProcAddress(library, "grpc_slice_buffer_take_first"); grpc_slice_buffer_take_first_import = (grpc_slice_buffer_take_first_type) GetProcAddress(library, "grpc_slice_buffer_take_first");
grpc_slice_buffer_undo_take_first_import = (grpc_slice_buffer_undo_take_first_type) GetProcAddress(library, "grpc_slice_buffer_undo_take_first"); grpc_slice_buffer_undo_take_first_import = (grpc_slice_buffer_undo_take_first_type) GetProcAddress(library, "grpc_slice_buffer_undo_take_first");
gpr_malloc_import = (gpr_malloc_type) GetProcAddress(library, "gpr_malloc"); gpr_malloc_import = (gpr_malloc_type) GetProcAddress(library, "gpr_malloc");
gpr_zalloc_import = (gpr_zalloc_type) GetProcAddress(library, "gpr_zalloc");
gpr_free_import = (gpr_free_type) GetProcAddress(library, "gpr_free"); gpr_free_import = (gpr_free_type) GetProcAddress(library, "gpr_free");
gpr_realloc_import = (gpr_realloc_type) GetProcAddress(library, "gpr_realloc"); gpr_realloc_import = (gpr_realloc_type) GetProcAddress(library, "gpr_realloc");
gpr_malloc_aligned_import = (gpr_malloc_aligned_type) GetProcAddress(library, "gpr_malloc_aligned"); gpr_malloc_aligned_import = (gpr_malloc_aligned_type) GetProcAddress(library, "gpr_malloc_aligned");

@ -611,6 +611,9 @@ extern grpc_slice_buffer_undo_take_first_type grpc_slice_buffer_undo_take_first_
typedef void *(*gpr_malloc_type)(size_t size); typedef void *(*gpr_malloc_type)(size_t size);
extern gpr_malloc_type gpr_malloc_import; extern gpr_malloc_type gpr_malloc_import;
#define gpr_malloc gpr_malloc_import #define gpr_malloc gpr_malloc_import
typedef void *(*gpr_zalloc_type)(size_t size);
extern gpr_zalloc_type gpr_zalloc_import;
#define gpr_zalloc gpr_zalloc_import
typedef void(*gpr_free_type)(void *ptr); typedef void(*gpr_free_type)(void *ptr);
extern gpr_free_type gpr_free_import; extern gpr_free_type gpr_free_import;
#define gpr_free gpr_free_import #define gpr_free gpr_free_import

@ -454,7 +454,7 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create(void) {
GPR_ASSERT(error == GRPC_ERROR_NONE); GPR_ASSERT(error == GRPC_ERROR_NONE);
GPR_ASSERT(port == proxy_port); GPR_ASSERT(port == proxy_port);
// Start server. // Start server.
proxy->pollset = gpr_malloc(grpc_pollset_size()); proxy->pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(proxy->pollset, &proxy->mu); grpc_pollset_init(proxy->pollset, &proxy->mu);
grpc_tcp_server_start(&exec_ctx, proxy->server, &proxy->pollset, 1, on_accept, grpc_tcp_server_start(&exec_ctx, proxy->server, &proxy->pollset, 1, on_accept,
proxy); proxy);

@ -202,7 +202,7 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
grpc_httpcli_context_init(&g_context); grpc_httpcli_context_init(&g_context);
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &g_mu); grpc_pollset_init(pollset, &g_mu);
g_pops = grpc_polling_entity_create_from_pollset(pollset); g_pops = grpc_polling_entity_create_from_pollset(pollset);

@ -205,7 +205,7 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
grpc_httpcli_context_init(&g_context); grpc_httpcli_context_init(&g_context);
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &g_mu); grpc_pollset_init(pollset, &g_mu);
g_pops = grpc_polling_entity_create_from_pollset(pollset); g_pops = grpc_polling_entity_create_from_pollset(pollset);

@ -78,7 +78,7 @@ int main(int argc, char **argv) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu);
grpc_closure_init(&destroyed, destroy_pollset, g_pollset, grpc_closure_init(&destroyed, destroy_pollset, g_pollset,

@ -104,7 +104,7 @@ static void test_fd_cleanup(grpc_exec_ctx *exec_ctx, test_fd *tfds,
static void test_pollset_init(test_pollset *pollsets, int num_pollsets) { static void test_pollset_init(test_pollset *pollsets, int num_pollsets) {
int i; int i;
for (i = 0; i < num_pollsets; i++) { for (i = 0; i < num_pollsets; i++) {
pollsets[i].pollset = gpr_malloc(grpc_pollset_size()); pollsets[i].pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollsets[i].pollset, &pollsets[i].mu); grpc_pollset_init(pollsets[i].pollset, &pollsets[i].mu);
} }
} }

@ -543,7 +543,7 @@ int main(int argc, char **argv) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_iomgr_init(); grpc_iomgr_init();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
test_grpc_fd(); test_grpc_fd();
test_grpc_fd_change(); test_grpc_fd_change();

@ -79,7 +79,7 @@ typedef struct test_pollset {
static void init_test_pollsets(test_pollset *pollsets, const int num_pollsets) { static void init_test_pollsets(test_pollset *pollsets, const int num_pollsets) {
for (int i = 0; i < num_pollsets; i++) { for (int i = 0; i < num_pollsets; i++) {
pollsets[i].ps = gpr_malloc(grpc_pollset_size()); pollsets[i].ps = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollsets[i].ps, &pollsets[i].mu); grpc_pollset_init(pollsets[i].ps, &pollsets[i].mu);
} }
} }

@ -63,7 +63,7 @@ static void do_nothing(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {}
void args_init(grpc_exec_ctx *exec_ctx, args_struct *args) { void args_init(grpc_exec_ctx *exec_ctx, args_struct *args) {
gpr_event_init(&args->ev); gpr_event_init(&args->ev);
args->pollset = gpr_malloc(grpc_pollset_size()); args->pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(args->pollset, &args->mu); grpc_pollset_init(args->pollset, &args->mu);
args->pollset_set = grpc_pollset_set_create(); args->pollset_set = grpc_pollset_set_create();
grpc_pollset_set_add_pollset(exec_ctx, args->pollset_set, args->pollset); grpc_pollset_set_add_pollset(exec_ctx, args->pollset_set, args->pollset);

@ -57,7 +57,7 @@ static void do_nothing(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {}
void args_init(grpc_exec_ctx *exec_ctx, args_struct *args) { void args_init(grpc_exec_ctx *exec_ctx, args_struct *args) {
gpr_event_init(&args->ev); gpr_event_init(&args->ev);
args->pollset = gpr_malloc(grpc_pollset_size()); args->pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(args->pollset, &args->mu); grpc_pollset_init(args->pollset, &args->mu);
args->pollset_set = grpc_pollset_set_create(); args->pollset_set = grpc_pollset_set_create();
grpc_pollset_set_add_pollset(exec_ctx, args->pollset_set, args->pollset); grpc_pollset_set_add_pollset(exec_ctx, args->pollset_set, args->pollset);

@ -205,7 +205,7 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
g_pollset_set = grpc_pollset_set_create(); g_pollset_set = grpc_pollset_set_create();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_pollset_set_add_pollset(&exec_ctx, g_pollset_set, g_pollset); grpc_pollset_set_add_pollset(&exec_ctx, g_pollset_set, g_pollset);
grpc_exec_ctx_finish(&exec_ctx); grpc_exec_ctx_finish(&exec_ctx);

@ -561,7 +561,7 @@ int main(int argc, char **argv) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu);
run_tests(); run_tests();

@ -457,7 +457,7 @@ int main(int argc, char **argv) {
test_addrs dst_addrs; test_addrs dst_addrs;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
test_no_op(); test_no_op();

@ -237,7 +237,7 @@ int main(int argc, char **argv) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
test_no_op(); test_no_op();

@ -87,7 +87,7 @@ char *grpc_test_fetch_oauth2_token_with_credentials(
grpc_closure do_nothing_closure; grpc_closure do_nothing_closure;
grpc_auth_metadata_context null_ctx = {"", "", NULL, NULL}; grpc_auth_metadata_context null_ctx = {"", "", NULL, NULL};
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &request.mu); grpc_pollset_init(pollset, &request.mu);
request.pops = grpc_polling_entity_create_from_pollset(pollset); request.pops = grpc_polling_entity_create_from_pollset(pollset);
request.is_done = 0; request.is_done = 0;

@ -98,7 +98,7 @@ int main(int argc, char **argv) {
goto end; goto end;
} }
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &sync.mu); grpc_pollset_init(pollset, &sync.mu);
sync.pops = grpc_polling_entity_create_from_pollset(pollset); sync.pops = grpc_polling_entity_create_from_pollset(pollset);
sync.is_done = 0; sync.is_done = 0;

@ -190,7 +190,7 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
g_pollset = gpr_malloc(grpc_pollset_size()); g_pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu);
test_leftover(configs[1], 1); test_leftover(configs[1], 1);

@ -106,7 +106,7 @@ int main(int argc, char **argv) {
grpc_init(); grpc_init();
sync.pollset = gpr_malloc(grpc_pollset_size()); sync.pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(sync.pollset, &sync.mu); grpc_pollset_init(sync.pollset, &sync.mu);
sync.is_done = 0; sync.is_done = 0;

@ -47,7 +47,7 @@ static void test_custom_allocs() {
const gpr_allocation_functions default_fns = gpr_get_allocation_functions(); const gpr_allocation_functions default_fns = gpr_get_allocation_functions();
intptr_t addr_to_free = 0; intptr_t addr_to_free = 0;
char *i; char *i;
gpr_allocation_functions fns = {fake_malloc, fake_realloc, fake_free}; gpr_allocation_functions fns = {fake_malloc, NULL, fake_realloc, fake_free};
gpr_set_allocation_functions(fns); gpr_set_allocation_functions(fns);
GPR_ASSERT((void *)(size_t)0xdeadbeef == gpr_malloc(0xdeadbeef)); GPR_ASSERT((void *)(size_t)0xdeadbeef == gpr_malloc(0xdeadbeef));

@ -215,7 +215,7 @@ int main(int argc, char **argv) {
/* Third round, bogus tcp server */ /* Third round, bogus tcp server */
gpr_log(GPR_DEBUG, "Wave 3"); gpr_log(GPR_DEBUG, "Wave 3");
args.pollset = gpr_malloc(grpc_pollset_size()); args.pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(args.pollset, &args.mu); grpc_pollset_init(args.pollset, &args.mu);
gpr_event_init(&args.ready); gpr_event_init(&args.ready);
gpr_thd_new(&server, bad_server_thread, &args, &options); gpr_thd_new(&server, bad_server_thread, &args, &options);

@ -96,8 +96,8 @@ static void guard_free(void *vptr) {
g_old_allocs.free_fn(ptr); g_old_allocs.free_fn(ptr);
} }
struct gpr_allocation_functions g_guard_allocs = {guard_malloc, guard_realloc, struct gpr_allocation_functions g_guard_allocs = {guard_malloc, NULL,
guard_free}; guard_realloc, guard_free};
void grpc_memory_counters_init() { void grpc_memory_counters_init() {
memset(&g_memory_counters, 0, sizeof(g_memory_counters)); memset(&g_memory_counters, 0, sizeof(g_memory_counters));

@ -89,7 +89,7 @@ void grpc_free_port_using_server(char *server, int port) {
memset(&req, 0, sizeof(req)); memset(&req, 0, sizeof(req));
memset(&rsp, 0, sizeof(rsp)); memset(&rsp, 0, sizeof(rsp));
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &pr.mu); grpc_pollset_init(pollset, &pr.mu);
pr.pops = grpc_polling_entity_create_from_pollset(pollset); pr.pops = grpc_polling_entity_create_from_pollset(pollset);
shutdown_closure = grpc_closure_create(destroy_pops_and_shutdown, &pr.pops, shutdown_closure = grpc_closure_create(destroy_pops_and_shutdown, &pr.pops,
@ -209,7 +209,7 @@ int grpc_pick_port_using_server(char *server) {
memset(&pr, 0, sizeof(pr)); memset(&pr, 0, sizeof(pr));
memset(&req, 0, sizeof(req)); memset(&req, 0, sizeof(req));
grpc_pollset *pollset = gpr_malloc(grpc_pollset_size()); grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(pollset, &pr.mu); grpc_pollset_init(pollset, &pr.mu);
pr.pops = grpc_polling_entity_create_from_pollset(pollset); pr.pops = grpc_polling_entity_create_from_pollset(pollset);
shutdown_closure = grpc_closure_create(destroy_pops_and_shutdown, &pr.pops, shutdown_closure = grpc_closure_create(destroy_pops_and_shutdown, &pr.pops,

@ -60,7 +60,7 @@ void test_tcp_server_init(test_tcp_server *server,
grpc_closure_init(&server->shutdown_complete, on_server_destroyed, server, grpc_closure_init(&server->shutdown_complete, on_server_destroyed, server,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
server->shutdown = 0; server->shutdown = 0;
server->pollset = gpr_malloc(grpc_pollset_size()); server->pollset = gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(server->pollset, &server->mu); grpc_pollset_init(server->pollset, &server->mu);
server->on_connect = on_connect; server->on_connect = on_connect;
server->cb_data = user_data; server->cb_data = user_data;

@ -312,7 +312,7 @@ static void BM_IsolatedFilter(benchmark::State &state) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
size_t channel_size = grpc_channel_stack_size(&filters[0], filters.size()); size_t channel_size = grpc_channel_stack_size(&filters[0], filters.size());
grpc_channel_stack *channel_stack = grpc_channel_stack *channel_stack =
static_cast<grpc_channel_stack *>(gpr_malloc(channel_size)); static_cast<grpc_channel_stack *>(gpr_zalloc(channel_size));
GPR_ASSERT(GRPC_LOG_IF_ERROR( GPR_ASSERT(GRPC_LOG_IF_ERROR(
"call_stack_init", "call_stack_init",
grpc_channel_stack_init(&exec_ctx, 1, FilterDestroy, channel_stack, grpc_channel_stack_init(&exec_ctx, 1, FilterDestroy, channel_stack,
@ -323,7 +323,7 @@ static void BM_IsolatedFilter(benchmark::State &state) {
"CHANNEL", channel_stack))); "CHANNEL", channel_stack)));
grpc_exec_ctx_flush(&exec_ctx); grpc_exec_ctx_flush(&exec_ctx);
grpc_call_stack *call_stack = static_cast<grpc_call_stack *>( grpc_call_stack *call_stack = static_cast<grpc_call_stack *>(
gpr_malloc(channel_stack->call_stack_size)); gpr_zalloc(channel_stack->call_stack_size));
gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_MONOTONIC); gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_MONOTONIC);
gpr_timespec start_time = gpr_now(GPR_CLOCK_MONOTONIC); gpr_timespec start_time = gpr_now(GPR_CLOCK_MONOTONIC);
grpc_slice method = grpc_slice_from_static_string("/foo/bar"); grpc_slice method = grpc_slice_from_static_string("/foo/bar");

Loading…
Cancel
Save