From bbabf30bc58f13c1050c587d6e2e9b37ff82ce36 Mon Sep 17 00:00:00 2001 From: Luca Deri Date: Tue, 20 Oct 2020 17:10:50 +0200 Subject: [PATCH] Crash fix -l needs to be validated: added basic check (not enough TOFIX) --- src/sn.c | 9 ++++++++- src/sn_utils.c | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/sn.c b/src/sn.c index d98b576..9124e0e 100644 --- a/src/sn.c +++ b/src/sn.c @@ -235,13 +235,20 @@ static int setOption(int optkey, char *_optarg, n2n_sn_t *sss) { struct peer_info *anchor_sn; size_t length; int rv = -1; - + char *double_column = strchr(_optarg, ':'); + length = strlen(_optarg); if(length >= N2N_EDGE_SN_HOST_SIZE) { traceEvent(TRACE_WARNING, "Size of -l argument too long: %zu. Maximum size is %d",length,N2N_EDGE_SN_HOST_SIZE); break; } + /* Need to check the format IP:port */ + if(!double_column) { + traceEvent(TRACE_WARNING, "Invalid -l format: ignored"); + return(-1); + } + if(sss->federation != NULL) { socket = (n2n_sock_t *)calloc(1,sizeof(n2n_sock_t)); diff --git a/src/sn_utils.c b/src/sn_utils.c index dadf7f3..eed0501 100644 --- a/src/sn_utils.c +++ b/src/sn_utils.c @@ -737,7 +737,7 @@ static int sendto_mgmt(n2n_sn_t *sss, * Evaluate first the MAC parameter and if it's zero-MAC, then it can skip HASH_FIND_PEER by MAC and search by socket */ struct peer_info* add_sn_to_federation_by_mac_or_sock(n2n_sn_t *sss,n2n_sock_t *sock, n2n_mac_t *mac) { - struct peer_info *scan, *tmp, *peer; + struct peer_info *scan, *tmp, *peer = NULL; int found = 0; if(sss->federation != NULL) {