diff options
author | Robert Swiecki <robert@swiecki.net> | 2017-11-09 17:29:40 +0100 |
---|---|---|
committer | Robert Swiecki <robert@swiecki.net> | 2017-11-09 17:29:40 +0100 |
commit | c03eeaae5c82051628f70f2e224719916b7b8b70 (patch) | |
tree | 1b6d22786518d42ab7c823a50efda0b4e84d84aa /examples | |
parent | 375b2a7cac891763451d5f148f6abfd6f819f918 (diff) | |
download | honggfuzz-c03eeaae5c82051628f70f2e224719916b7b8b70.tar.gz |
examples/openssl: check ret values of SSL_clear and SSL_shutdown. Big thanks to Emilia Kasper for debugging it
Diffstat (limited to 'examples')
-rw-r--r-- | examples/openssl/client.c | 11 | ||||
-rw-r--r-- | examples/openssl/server.c | 11 |
2 files changed, 14 insertions, 8 deletions
diff --git a/examples/openssl/client.c b/examples/openssl/client.c index 38fb0f1e..4a8c4f1f 100644 --- a/examples/openssl/client.c +++ b/examples/openssl/client.c @@ -571,11 +571,9 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) for (;;) { ssize_t r = SSL_read(client, tmp, sizeof(tmp)); if (r <= 0) { - SSL_shutdown(client); break; } if (SSL_write(client, tmp, r) <= 0) { - SSL_shutdown(client); break; } SSL_renegotiate(client); @@ -586,10 +584,15 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) } } else { ERR_print_errors_fp(stderr); + break; } - SSL_shutdown(client); - SSL_clear(client); + if (SSL_shutdown(client) != 1) { + break; + } + if (SSL_clear(client) != 1) { + break; + } } SSL_free(client); diff --git a/examples/openssl/server.c b/examples/openssl/server.c index a058c7dc..0f5c68ec 100644 --- a/examples/openssl/server.c +++ b/examples/openssl/server.c @@ -622,11 +622,9 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) for (;;) { ssize_t r = SSL_read(server, tmp, sizeof(tmp)); if (r <= 0) { - SSL_shutdown(server); break; } if (SSL_write(server, tmp, r) <= 0) { - SSL_shutdown(server); break; } SSL_renegotiate(server); @@ -637,10 +635,15 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) } } else { ERR_print_errors_fp(stderr); + break; } - SSL_shutdown(server); - SSL_clear(server); + if (SSL_shutdown(server) != 1) { + break; + } + if (SSL_clear(server) != 1) { + break; + } } SSL_free(server); |