Merge pull request #9541 from ctiller/call_create

Dont crash on API errors
pull/9545/head
Craig Tiller 8 years ago committed by GitHub
commit 4040e13cc5
  1. 24
      src/core/lib/surface/call.c
  2. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/00ba96baafa4595f2d41c2fcf0a27f4e9be5c44d
  3. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/06a298ad14533924c9fcb2df0d462c44a206f64b
  4. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/0914e4f6ee18c9d15b8df1858a7745b86d875970
  5. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/091f02cc858a89253748b7d1051b8728d0e34015
  6. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/095e3fa32a271ef9326d4dcd59fbd003977fdcfa
  7. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/0dfc84a6703bdbe9a6acb72e178353d5d69f5814
  8. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/0ec11a92c1830b4c2f56a0979dd9e3c7162bd624
  9. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/163cf93cebfb32d617830aa4e69e8b5f59bd3a08
  10. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/1776f4c32c11490c65b81d0b7ae2ece4a3d1e9a7
  11. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/19fdd6cdeee7a5cbc991d0e3242c23d5aaff2fbf
  12. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/1b331dfc1d9d535063f0cc6f7a709499a5f8cb59
  13. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/1c968074e9dcd8e9922e6c01ecfedcaf7b2fe5a3
  14. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/1cae148c387cd20a1742d902543c2c8396589479
  15. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/1de191d81c4c7bf0e026bff0a040165c084fd630
  16. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/224b2255a1bd250102481abc3e823090650e231e
  17. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/23746fe5e477430aec8b12e9d7de0f86f6a6e191
  18. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/26794761df5dc7f093d2395b81a32af5e6b54392
  19. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/289c2b6211858aa4a46b5b489bc4c9dd47828d21
  20. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/2bb76eff88c5af98c4b8828047837fe97b50cfeb
  21. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/2df7ea9c0c488fc8f79d33b6bce5667a2f051a65
  22. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/3082fa77cc2942ae425a6577d1f9c0dddd2949be
  23. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/308fbf16b3f3747423b2ff69ef5930b01ca9b728
  24. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/30d2e4b3cac45cbcfe76459c90c49e085914c154
  25. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/31d8226b1d767fc895e87d7feede0e2d7c6c0b66
  26. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/33252c0d4edb12370235c0179abd87a5efb59d29
  27. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/34e2445f42fd82c5ce229782a93764def3aae0e7
  28. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/3698d88414f52b7c4759bfdadb53161b226faf8c
  29. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/3c9a414ad8fcc53c3271bbc8375086d8d1fa450c
  30. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/3e82319f1a44ea9224d65feb07ee0ef622709dac
  31. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/4239c3636053665277d07bafda37ee84c114b13a
  32. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/426b7f180ab26cf276a223246d4d6bd972ccf55a
  33. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/43f8e0abe3f647350ab1d8d368cca9af6ca47729
  34. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/453861de5ab948236f13ebff66c8e82e4e789db6
  35. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/48062d4824e8ba697cdd16a46b85d82ff445e649
  36. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/4857011f92ceaed4fee4d7612e1c46930903c95b
  37. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/48c1691a919f1055f748e43cd799770f00c1c38a
  38. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/49254390bbc7e7b9eb58ddb1ac54a1e7eacee168
  39. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/4a5a1abe7b402338c625013caa9bc8464a3d0bf2
  40. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/4ad1a61051d0db46638b774c61392b9d1c360410
  41. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/4b0e9a84edc3eb0e6c377e860f5ecfca1bf64baa
  42. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/503649137cea18ced8a57e7c644162bee8885ed1
  43. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/51716d5683d5c762298fdfa6b57ecf17d6892fe6
  44. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/52ac4e5a6c433b7e135e817b797f9bc85d4c619a
  45. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/536b5c0bf942c03bf9d4a4cc27c97c1230128ede
  46. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/55a71f74f233ea8ce88967c5660aaa532fbc985c
  47. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/55da9fe903905e9852dedf6b664a4a589efeeec5
  48. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/567026bafbad3be6a7bd430577e7d39ec3d56af6
  49. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/59b547627a6b1aef96f6c5e3b7dc08c3e1244368
  50. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/5ac0e42338f7b064f5c23697f1174a10b42e7ed8
  51. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/5bc4eddc2a2881d4b6b4f9532f4fb381e4cc9529
  52. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/5be0001be32d9e619769c7cc6cb9f541efe4996c
  53. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/5e0c4179d297f5bafe86b9e256bf75d54cfd1fb0
  54. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/62515c0e559e40838126e5be6ede5440875a3f70
  55. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/63f1e7c7eb4d0ee635c3794993d2e2132cba72d4
  56. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/64d1666dc1b1126bb99e3792040dff64b336ae36
  57. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/6ae25d59c9f771291edddc6c71d01c855883b99b
  58. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/6eef551288136e9fb2d9de210b14148746203472
  59. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/70cf4c8bdd833f8c62d8c89ef50d50008457f5ac
  60. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/71403746b8e54a5f9b6fa1882a7ff5322180dd01
  61. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/71cbd5e4e98344dd16df8b21546439cdb0879e0f
  62. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/755e5b679c1bb2720590e166d5047588a0e2f8b0
  63. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/75af1ed0b83b24a1d5201038a4b382d0ace6222f
  64. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/75f9b79cacbfef018bb131af2e2ba0735b2640ec
  65. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/76116b26156d91b16a70f28a126ed5f05ce55548
  66. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/766995b9faa25c3b2c825413e5e9a702721de7fa
  67. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/77f4f436f910c45f216fe4d3f9b631612ed09cf6
  68. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/79163c87e1c3340d05799cf27f1e898a932d1001
  69. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/795912f4ca380c73a3a3c956b1cba1e9051d92bf
  70. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/7b5a71e770bf9eed928f5e552a7659f8ad8a8b84
  71. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8005d0a23f43613949321e9fc761180cdcd569c8
  72. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/80d4266aee0b8b7dca74696dde949ebfaa052535
  73. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/823ef8523d3d3d90578d32e09e6822eb9ed42ecf
  74. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/835062d78983dae5747ab4e207d227869ce90733
  75. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/83a2a19743bb77278aba8cce1d04529d2cb0a744
  76. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8644486ad9579f43b8c6f34b423c2c1159b20a9a
  77. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/86906b52f5fdad0955f5a93dd26ff420e4a58078
  78. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/89cdf2f9a9682277284c24819a0cd336bbb04d60
  79. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8adec341bcbd14fb0bee52926141a4a5b3a885e2
  80. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8b43d6ab6c1034fba9757ce801e237da089f1898
  81. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8d54be1edc097b319d26ee1a08b1da06bafd0bbc
  82. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8e49b880f6e9514963c8f82bc6c7131ab104200f
  83. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8ea9969bced02fd855c7de7edb12f074226f6dab
  84. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8efa9ad7c934a3c3cc01470ee1c21d7063f7b209
  85. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8f71f51eba1aba1d839b19801c594eab968a892e
  86. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8f840f0a04cce56098d395939b446589ee67da0c
  87. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/8fba35a2ec8e2eb182eeacd23592c92932c64200
  88. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/91236da3b95886937ab487700d8c72b40e6b9477
  89. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/91491f410776eb726c8a5face925c703737ed916
  90. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/91980bd25cd4827c2e0c9ebb028d03ef226d0e73
  91. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/943924f902d02a4358ba2ae693087033d30e862b
  92. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/946f3ee9686789790301935574f412b9cf5cdeec
  93. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/958d48d95d2c2ff8b177ebd2149b9d9a89908f48
  94. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/9625913195b7d7a5337016e8f9a29c8f3d6ad435
  95. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/963c2fa0d8197bb8b6c7bbfcb43a9ae1ec29f2c7
  96. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/974be67fe5188cfa77f7db943dfdaa0a4a2c4e82
  97. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/97f7a51a0bb869d09f9f1bd7a4f93c5d859c89eb
  98. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/99bb7db7244a6cb2bc0e6c275739f051f83b335a
  99. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/9c78f9e53f09be45b2dac44dc8452880e7bed04b
  100. BIN
      test/core/end2end/fuzzers/api_fuzzer_corpus/9d5d9a28271a6d21850feb249cfe27aa0a31130c
  101. Some files were not shown because too many files have changed in this diff Show More

@ -242,10 +242,18 @@ static void post_batch_completion(grpc_exec_ctx *exec_ctx, batch_control *bctl);
static void add_batch_error(grpc_exec_ctx *exec_ctx, batch_control *bctl,
grpc_error *error);
static void add_init_error(grpc_error **composite, grpc_error *new) {
if (new == GRPC_ERROR_NONE) return;
if (*composite == GRPC_ERROR_NONE)
*composite = GRPC_ERROR_CREATE("Call creation failed");
*composite = grpc_error_add_child(*composite, new);
}
grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
const grpc_call_create_args *args,
grpc_call **out_call) {
size_t i, j;
grpc_error *error = GRPC_ERROR_NONE;
grpc_channel_stack *channel_stack =
grpc_channel_get_channel_stack(args->channel);
grpc_call *call;
@ -308,8 +316,11 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
grpc_call_context_set(
call, GRPC_CONTEXT_TRACING,
args->parent_call->context[GRPC_CONTEXT_TRACING].value, NULL);
} else {
GPR_ASSERT(args->propagation_mask & GRPC_PROPAGATE_CENSUS_STATS_CONTEXT);
} else if (0 ==
(args->propagation_mask & GRPC_PROPAGATE_CENSUS_STATS_CONTEXT)) {
add_init_error(&error,
GRPC_ERROR_CREATE("Census tracing propagation requested "
"without Census context propagation"));
}
if (args->propagation_mask & GRPC_PROPAGATE_CANCELLATION) {
call->cancellation_is_inherited = 1;
@ -332,10 +343,11 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
GRPC_CHANNEL_INTERNAL_REF(args->channel, "call");
/* initial refcount dropped by grpc_call_destroy */
grpc_error *error = grpc_call_stack_init(
exec_ctx, channel_stack, 1, destroy_call, call, call->context,
args->server_transport_data, path, call->start_time, send_deadline,
CALL_STACK_FROM_CALL(call));
add_init_error(&error, grpc_call_stack_init(exec_ctx, channel_stack, 1,
destroy_call, call, call->context,
args->server_transport_data, path,
call->start_time, send_deadline,
CALL_STACK_FROM_CALL(call)));
if (error != GRPC_ERROR_NONE) {
cancel_with_error(exec_ctx, call, GRPC_ERROR_REF(error));
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save