From e5e3e8db72b95bf35f06ebbbdbd049e2c6a3be56 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Mon, 3 Apr 2023 10:24:45 -0500 Subject: [PATCH] Fixed segfault issue by using MAX_CONNECTIONS instead of 'sizeof' --- main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index b020224..e5ce316 100644 --- a/main.c +++ b/main.c @@ -20,7 +20,7 @@ int main() { socklen_t temp_addrlen; fd_set read_fd_set; - int conn_sockets[MAX_CONNECTIONS] = {0}; + int conn_sockets[MAX_CONNECTIONS] = {-1}; FD_ZERO(&read_fd_set); char buffer[BUFFER_SIZE]; User* users = create_user_list("user_file.txt"); @@ -33,7 +33,7 @@ int main() { while (true) { FD_ZERO(&read_fd_set); - for (int i=0; i < sizeof(conn_sockets); i++) { + for (int i=0; i < MAX_CONNECTIONS; i++) { if (conn_sockets[i] > 0) { FD_SET(conn_sockets[i],&read_fd_set); } @@ -44,7 +44,7 @@ int main() { if (num_conns > 0) { if (FD_ISSET(conn_sockets[0],&read_fd_set)) { int client_sock = accept(conn_sockets[0],&temp_addr,&temp_addrlen); - for (int i=0;i < sizeof(conn_sockets); i++) { + for (int i=0;i < MAX_CONNECTIONS; i++) { if (conn_sockets[i] <= 0) { conn_sockets[i] = client_sock; break; @@ -52,13 +52,12 @@ int main() { } } - for (int i=1; i < sizeof(conn_sockets); i++) { - printf("Checking FD: %d\n",i); + for (int i=1; i < MAX_CONNECTIONS; i++) { if (FD_ISSET(conn_sockets[i],&read_fd_set)) { int num_bytes_read = recv(conn_sockets[i],buffer,sizeof(buffer),0); if (num_bytes_read <= 0) { close(conn_sockets[i]); - conn_sockets[i] = -1; + conn_sockets[i] = 0; } else { for (int i=0;i