diff --git a/src/meta.c b/src/meta.c index 260cb005..ff06d0ce 100644 --- a/src/meta.c +++ b/src/meta.c @@ -287,7 +287,8 @@ bool receive_meta(connection_t *c) { char *request = buffer_readline(&c->inbuf); if(request) { - bool result = receive_request(c, request); + bool result = false; + result = receive_request(c, request); if(!result) return false; continue; diff --git a/src/net_packet.c b/src/net_packet.c index 6183e253..a95e9771 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -837,6 +837,7 @@ bool receive_sptps_record(void *handle, uint8_t type, const void *data, uint16_t } vpn_packet_t inpkt; + bzero(&inpkt, sizeof(inpkt)); inpkt.offset = DEFAULT_PACKET_OFFSET; if(type == PKT_PROBE) { diff --git a/src/protocol_auth.c b/src/protocol_auth.c index d30d9e08..78c19ba3 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -498,6 +498,11 @@ bool metakey_h(connection_t *c, const char *request) { char enckey[len]; char key[len]; + bzero(key, len); + bzero(enckey, len); + + cipher = digest = maclength =compression = 0; + if(sscanf(request, "%*d %d %d %d %d " MAX_STRING, &cipher, &digest, &maclength, &compression, hexkey) != 5) { logger(DEBUG_ALWAYS, LOG_ERR, "Got bad %s from %s (%s)", "METAKEY", c->name, c->hostname); return false; @@ -692,7 +697,7 @@ bool send_ack(connection_t *c) { to create node_t and edge_t structures. */ struct timeval now; - bool choice; + bool choice = false; /* Estimate weight */