summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2017-11-09 17:29:40 +0100
committerRobert Swiecki <robert@swiecki.net>2017-11-09 17:29:40 +0100
commitc03eeaae5c82051628f70f2e224719916b7b8b70 (patch)
tree1b6d22786518d42ab7c823a50efda0b4e84d84aa /examples
parent375b2a7cac891763451d5f148f6abfd6f819f918 (diff)
downloadhonggfuzz-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.c11
-rw-r--r--examples/openssl/server.c11
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);