Skip to content

Commit

Permalink
fix: various memory issues
Browse files Browse the repository at this point in the history
Fix various community memory issues in #72
  • Loading branch information
zachhildreth committed May 2, 2022
1 parent a72edac commit 8a193bc
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2362,6 +2362,7 @@ int block_verifiers_send_data_socket(const char* MESSAGE)
memset(data,0,sizeof(data));
memset(data2,0,sizeof(data2));
memset(data3,0,sizeof(data3));
memset(&block_verifiers_send_data_socket, 0, sizeof(block_verifiers_send_data_socket));

// create the message
memcpy(data,MESSAGE,strnlen(MESSAGE,sizeof(data)));
Expand All @@ -2386,7 +2387,6 @@ int block_verifiers_send_data_socket(const char* MESSAGE)
struct addrinfo* settings = NULL;

// initialize the block_verifiers_send_data_socket struct
memset(block_verifiers_send_data_socket[count].IP_address,0,sizeof(block_verifiers_send_data_socket[count].IP_address));
memcpy(block_verifiers_send_data_socket[count].IP_address,current_block_verifiers_list.block_verifiers_IP_address[count],strnlen(current_block_verifiers_list.block_verifiers_IP_address[count],sizeof(block_verifiers_send_data_socket[count].IP_address)));
block_verifiers_send_data_socket[count].settings = 0;

Expand Down Expand Up @@ -2509,8 +2509,11 @@ int block_verifiers_send_data_socket(const char* MESSAGE)
// remove all of the sockets from the epoll file descriptor and close all of the sockets
for (count = 0; count < TOTAL_BLOCK_VERIFIERS; count++)
{
epoll_ctl(epoll_fd_copy, EPOLL_CTL_DEL, block_verifiers_send_data_socket[count].socket, &events[count]);
close(block_verifiers_send_data_socket[count].socket);
if (block_verifiers_send_data_socket[count].socket > -1)
{
epoll_ctl(epoll_fd_copy, EPOLL_CTL_DEL, block_verifiers_send_data_socket[count].socket, &events[count]);
close(block_verifiers_send_data_socket[count].socket);
}
}
return 1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,7 @@ void server_receive_data_socket_node_to_node_majority(const char* MESSAGE)
return;

memset(data,0,sizeof(data));
memset(public_address,0,sizeof(public_address));

// parse the public address
if (parse_json_data(MESSAGE,"public_address",public_address,sizeof(public_address)) == 0)
Expand Down Expand Up @@ -410,6 +411,7 @@ void server_receive_data_socket_node_to_node(const char* MESSAGE)

memset(data,0,sizeof(data));
memset(data2,0,sizeof(data2));
memset(public_address,0,sizeof(public_address));

// parse the message
if (parse_json_data(MESSAGE,"public_address",public_address,sizeof(public_address)) == 0 || parse_json_data(MESSAGE,"vote_settings",data,sizeof(data)) == 0 || parse_json_data(MESSAGE,"vote_data",data2,sizeof(data2)) == 0 || strlen(data2) != DATA_HASH_LENGTH)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ int sync_check_reserve_proofs_database(int settings)
error_message.total++; \
return 0;

memset(data2,0,sizeof(data2));
memset(data,0,sizeof(data));
memset(data2,0,sizeof(data2));
memset(message,0,sizeof(message));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1119,6 +1119,7 @@ int get_delegates_online_status(void)

struct epoll_event events[total_delegates];
struct block_verifiers_send_data_socket block_verifiers_send_data_socket[total_delegates];
memset(&block_verifiers_send_data_socket, 0, sizeof(block_verifiers_send_data_socket));

// reset the struct delegates_online_status and struct block_verifiers_send_data_socket
for (count = 0; count < total_delegates; count++)
Expand All @@ -1127,7 +1128,6 @@ int get_delegates_online_status(void)
memcpy(delegates_online_status[count].public_address,delegates[count].public_address,strnlen(delegates[count].public_address,sizeof(delegates_online_status[count].public_address)));
delegates_online_status[count].settings = 0;

memset(block_verifiers_send_data_socket[count].IP_address,0,sizeof(block_verifiers_send_data_socket[count].IP_address));
memcpy(block_verifiers_send_data_socket[count].IP_address,delegates[count].IP_address,strnlen(delegates[count].IP_address,sizeof(block_verifiers_send_data_socket[count].IP_address)));
block_verifiers_send_data_socket[count].settings = 0;
}
Expand Down Expand Up @@ -1303,8 +1303,11 @@ int get_delegates_online_status(void)
update_document_from_collection(database_name,DATABASE_COLLECTION,data2,data);

// remove all of the sockets from the epoll file descriptor and close all of the sockets
epoll_ctl(epoll_fd_copy, EPOLL_CTL_DEL, block_verifiers_send_data_socket[count].socket, &events[count]);
close(block_verifiers_send_data_socket[count].socket);
if (block_verifiers_send_data_socket[count].socket > -1)
{
epoll_ctl(epoll_fd_copy, EPOLL_CTL_DEL, block_verifiers_send_data_socket[count].socket, &events[count]);
close(block_verifiers_send_data_socket[count].socket);
}
}
POINTER_RESET_DELEGATES_STRUCT(count,MAXIMUM_AMOUNT_OF_DELEGATES);
return total_delegates_online;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ int add_reserve_proof_remove_previous_vote(const char* PUBLIC_ADDRESS_CREATE_RES
for (count3 = 0; count3 < count2; count3++)
{
memset(data2,0,sizeof(data2));
memset(data2,0,sizeof(data3));
memset(data3,0,sizeof(data3));

// get the reserve proof amount, and the public address voted for
if (read_document_field_from_collection(database_name,data,PUBLIC_ADDRESS_CREATE_RESERVE_PROOF_DATA,"public_address_voted_for",data2) == 0 || read_document_field_from_collection(database_name,data,PUBLIC_ADDRESS_CREATE_RESERVE_PROOF_DATA,"total",data3) == 0)
Expand Down Expand Up @@ -328,11 +328,7 @@ void server_receive_data_socket_node_to_block_verifiers_add_reserve_proof(const
return;

// initialize the reserve_proof struct
memset(reserve_proof.block_verifier_public_address,0,sizeof(reserve_proof.block_verifier_public_address));
memset(reserve_proof.public_address_created_reserve_proof,0,sizeof(reserve_proof.public_address_created_reserve_proof));
memset(reserve_proof.public_address_voted_for,0,sizeof(reserve_proof.public_address_voted_for));
memset(reserve_proof.reserve_proof_amount,0,sizeof(reserve_proof.reserve_proof_amount));
memset(reserve_proof.reserve_proof,0,sizeof(reserve_proof.reserve_proof));
memset(&reserve_proof,0,sizeof(reserve_proof));

memset(message,0,sizeof(message));
memset(message2,0,sizeof(message2));
Expand Down

0 comments on commit 8a193bc

Please sign in to comment.