Merge branch 'e2efuzz' of github.com:ctiller/grpc into e2efuzz

pull/6071/head
Craig Tiller 9 years ago
commit 26d3fd2f15
  1. 8
      src/core/lib/surface/server.c
  2. 6
      src/core/lib/transport/metadata.c
  3. 4
      test/core/end2end/fuzzers/server_fuzzer.c
  4. BIN
      test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897
  5. BIN
      test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785
  6. 3
      test/core/end2end/tests/filter_causes_close.c
  7. 44
      tools/run_tests/tests.json

@ -685,10 +685,14 @@ static grpc_mdelem *server_filter(void *user_data, grpc_mdelem *md) {
grpc_call_element *elem = user_data;
call_data *calld = elem->call_data;
if (md->key == GRPC_MDSTR_PATH) {
calld->path = GRPC_MDSTR_REF(md->value);
if (calld->path == NULL) {
calld->path = GRPC_MDSTR_REF(md->value);
}
return NULL;
} else if (md->key == GRPC_MDSTR_AUTHORITY) {
calld->host = GRPC_MDSTR_REF(md->value);
if (calld->host == NULL) {
calld->host = GRPC_MDSTR_REF(md->value);
}
return NULL;
}
return md;

@ -242,6 +242,12 @@ void grpc_mdctx_global_shutdown(void) {
if (shard->count != 0) {
gpr_log(GPR_DEBUG, "WARNING: %d metadata strings were leaked",
shard->count);
for (size_t j = 0; j < shard->capacity; j++) {
for (internal_string *s = shard->strs[j]; s; s = s->bucket_next) {
gpr_log(GPR_DEBUG, "LEAKED: %s",
grpc_mdstr_as_c_string((grpc_mdstr *)s));
}
}
if (grpc_iomgr_abort_on_leaks()) {
abort();
}

@ -37,6 +37,8 @@
#include "src/core/lib/surface/server.h"
#include "test/core/util/mock_endpoint.h"
static const bool squelch = true;
static void discard_write(gpr_slice slice) {}
static void *tag(int n) { return (void *)(uintptr_t)n; }
@ -46,7 +48,7 @@ static void dont_log(gpr_log_func_args *args) {}
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
grpc_test_only_set_metadata_hash_seed(0);
gpr_set_log_function(dont_log);
if (squelch) gpr_set_log_function(dont_log);
grpc_init();
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;

@ -200,8 +200,7 @@ static void test_request(grpc_end2end_test_config config) {
typedef struct { grpc_closure *recv_im_ready; } call_data;
typedef struct {
} channel_data;
typedef struct { uint8_t unused; } channel_data;
static void recv_im_ready(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
grpc_call_element *elem = arg;

@ -39743,6 +39743,28 @@
"posix"
]
},
{
"args": [
"test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897"
],
"ci_platforms": [
"linux",
"mac",
"windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "server_fuzzer_one_entry",
"platforms": [
"linux",
"mac",
"windows",
"posix"
]
},
{
"args": [
"test/core/end2end/fuzzers/server_fuzzer_corpus/2b40aa21723c7e67e92e74a3083df008461d591c"
@ -43505,6 +43527,28 @@
"posix"
]
},
{
"args": [
"test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785"
],
"ci_platforms": [
"linux",
"mac",
"windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "server_fuzzer_one_entry",
"platforms": [
"linux",
"mac",
"windows",
"posix"
]
},
{
"args": [
"test/core/end2end/fuzzers/server_fuzzer_corpus/c66e84d1.bin"

Loading…
Cancel
Save