summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Antonuk <alan.antonuk@gmail.com>2023-05-02 03:42:55 +0000
committerAlan Antonuk <alan.antonuk@gmail.com>2023-05-01 20:52:51 -0700
commita135e871dfe430043d1406eb2fbe4d70a5145289 (patch)
treee05ec710c7acf547f1a3dfe0bca3e9531f0519f4
parent8f8a320c5a9a58647f2f39d66107e7f116f4bc4a (diff)
downloadrabbitmq-c-a135e871dfe430043d1406eb2fbe4d70a5145289.tar.gz
fuzz: add more error reporting to fuzz_server
Signed-off-by: GitHub <noreply@github.com>
-rw-r--r--fuzz/fuzz_server.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/fuzz/fuzz_server.c b/fuzz/fuzz_server.c
index 8f48a17..de500ed 100644
--- a/fuzz/fuzz_server.c
+++ b/fuzz/fuzz_server.c
@@ -36,7 +36,7 @@ void fuzzinit(Fuzzer *fuzzer) {
int res;
fuzzer->socket = socket(AF_INET, SOCK_STREAM, 0);
if (fuzzer->socket == -1) {
- fprintf(stderr, "socket failed %s", strerror(errno));
+ fprintf(stderr, "socket failed %s\n", strerror(errno));
exit(1);
}
memset(&server_addr, 0, sizeof(server_addr));
@@ -45,18 +45,18 @@ void fuzzinit(Fuzzer *fuzzer) {
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
res = setsockopt(fuzzer->socket, SOL_SOCKET, SO_REUSEADDR, &(int){1}, sizeof(int));
if (res) {
- fprintf(stderr, "setsockopt failed: %s", strerror(errno));
+ fprintf(stderr, "setsockopt failed: %s\n", strerror(errno));
exit(1);
}
res = bind(fuzzer->socket, (struct sockaddr *)&server_addr, sizeof(server_addr));
if (res) {
- fprintf(stderr, "bind failed: %s", strerror(errno));
+ fprintf(stderr, "bind failed: %s\n", strerror(errno));
exit(1);
}
res = listen(fuzzer->socket, 1);
if (res) {
- fprintf(stderr, "listen failed: %s", strerror(errno));
+ fprintf(stderr, "listen failed: %s\n", strerror(errno));
exit(1);
}
}
@@ -65,14 +65,27 @@ void *Server(void *args) {
Fuzzer *fuzzer = (Fuzzer *)args;
int client;
+ int res;
char clientData[10240];
client = accept(fuzzer->socket, NULL, NULL);
+ if (client == -1) {
+ fprintf(stderr, "accept failed: %s\n", strerror(errno));
+ exit(1);
+ }
- recv(client, clientData, sizeof(clientData), 0);
- send(client, fuzzer->buffer, fuzzer->size, 0);
+ res = recv(client, clientData, sizeof(clientData), 0);
+ if (res == -1) {
+ fprintf(stderr, "recv failed: %s\n", strerror(errno));
+ exit(1);
+ }
+ res = send(client, fuzzer->buffer, fuzzer->size, 0);
+ if (res == -1) {
+ fprintf(stderr, "send failed: %s\n", strerror(errno));
+ exit(1);
+ }
- shutdown(client, SHUT_RDWR);
+ res = shutdown(client, SHUT_RDWR);
close(client);
return NULL;
}
@@ -122,7 +135,9 @@ void client(Fuzzer *fuzzer) {
status = amqp_socket_open(socket, hostname, fuzzer->port);
if (status != AMQP_STATUS_OK) {
- fprintf(stderr, "amqp_socket_open failed: %s", amqp_error_string2(status));
+ int sav_errno = errno;
+ fprintf(stderr, "amqp_socket_open failed: %s\n", amqp_error_string2(status));
+ fprintf(stderr, "amqp_socket_open errno: %d: %s\n", sav_errno, strerror(sav_errno));
exit(1);
}