diff --git a/test/core/echo/echo_test.c b/test/core/echo/echo_test.c index 6449b2414f3..83b83ab7ff7 100644 --- a/test/core/echo/echo_test.c +++ b/test/core/echo/echo_test.c @@ -49,18 +49,19 @@ #include "test/core/util/port.h" int test_client(const char *root, const char *host, int port) { - char *args[3]; int status; pid_t cli; cli = fork(); if (cli == 0) { - gpr_asprintf(&args[0], "%s/echo_client", root); - gpr_join_host_port(&args[1], host, port); - args[2] = 0; - execv(args[0], args); + char *binary_path; + char *binding; + gpr_asprintf(&binary_path, "%s/echo_client", root); + gpr_join_host_port(&binding, host, port); - gpr_free(args[0]); - gpr_free(args[1]); + execl(binary_path, binary_path, binding, NULL); + + gpr_free(binary_path); + gpr_free(binding); return 1; } /* wait for client */ @@ -76,7 +77,6 @@ int main(int argc, char **argv) { char *lslash = strrchr(me, '/'); char root[1024]; int port = grpc_pick_unused_port_or_die(); - char *args[3]; int status; pid_t svr; int ret; @@ -98,13 +98,15 @@ int main(int argc, char **argv) { /* start the server */ svr = fork(); if (svr == 0) { - gpr_asprintf(&args[0], "%s/echo_server", root); - gpr_join_host_port(&args[1], "::", port); - args[2] = 0; - execv(args[0], args); + char *binary_path; + char *binding; + gpr_asprintf(&binary_path, "%s/echo_server", root); + gpr_join_host_port(&binding, "::", port); + + execl(binary_path, binary_path, "-bind", binding, NULL); - gpr_free(args[0]); - gpr_free(args[1]); + gpr_free(binary_path); + gpr_free(binding); return 1; } /* wait a little */