Fix non-test bug

pull/6160/head
Craig Tiller 9 years ago
parent c17a5c1d6e
commit 481635cc36
  1. 23
      test/core/end2end/fuzzers/api_fuzzer.c
  2. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/00.bin
  3. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/01.bin
  4. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/02.bin
  5. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/03.bin
  6. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/04.bin
  7. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/05.bin
  8. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/06.bin
  9. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/07.bin
  10. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/08.bin
  11. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/09.bin
  12. 0
      test/core/end2end/fuzzers/api_fuzzer_corpus/0a.bin
  13. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/0b.bin
  14. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/0c.bin
  15. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/0d.bin
  16. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/0e.bin
  17. 1
      test/core/end2end/fuzzers/api_fuzzer_corpus/0f.bin

@ -151,9 +151,7 @@ typedef enum {
SERVER_SHUTDOWN,
} tag_name;
static void *tag(tag_name name) {
return (void*)(uintptr_t)name;
}
static void *tag(tag_name name) { return (void *)(uintptr_t)name; }
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
grpc_test_only_set_metadata_hash_seed(0);
@ -170,7 +168,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
grpc_completion_queue *cq = grpc_completion_queue_create(NULL);
while (!is_eof(&inp) && channel && server) {
while (!is_eof(&inp) || channel != NULL || server != NULL) {
if (is_eof(&inp)) {
if (channel != NULL) {
grpc_channel_destroy(channel);
@ -180,7 +178,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if (!server_shutdown) {
grpc_server_shutdown_and_notify(server, cq, tag(SERVER_SHUTDOWN));
server_shutdown = true;
pending_server_shutdowns ++;
pending_server_shutdowns++;
} else if (pending_server_shutdowns == 0) {
grpc_server_destroy(server);
server = NULL;
@ -196,12 +194,12 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
switch (ev.type) {
case GRPC_OP_COMPLETE:
switch ((tag_name)(uintptr_t)ev.type) {
case SERVER_SHUTDOWN:
GPR_ASSERT(pending_server_shutdowns);
pending_server_shutdowns--;
break;
default:
GPR_ASSERT(false);
case SERVER_SHUTDOWN:
GPR_ASSERT(pending_server_shutdowns);
pending_server_shutdowns--;
break;
default:
GPR_ASSERT(false);
}
break;
case GRPC_QUEUE_TIMEOUT:
@ -274,7 +272,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
}
// destroy server
case 7: {
if (server != NULL && server_shutdown && pending_server_shutdowns == 0) {
if (server != NULL && server_shutdown &&
pending_server_shutdowns == 0) {
grpc_server_destroy(server);
server = NULL;
}

Loading…
Cancel
Save