X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/65270c4bd287b5a27c567ff1ebb595738d466b4d..3bea7b1e3e74035ee1eabd50396624edf4f070d4:/cluster.c diff --git a/cluster.c b/cluster.c index 51f34d4..fb71070 100644 --- a/cluster.c +++ b/cluster.c @@ -1,6 +1,6 @@ // L2TPNS Clustering Stuff -char const *cvs_id_cluster = "$Id: cluster.c,v 1.52 2006-06-11 12:46:18 bodea Exp $"; +char const *cvs_id_cluster = "$Id: cluster.c,v 1.54 2006-12-04 20:50:02 bodea Exp $"; #include #include @@ -1453,7 +1453,11 @@ static int cluster_process_heartbeat(uint8_t *data, int size, int more, uint8_t return -1; // Ignore it?? } - // Ok. It's a heartbeat packet from a cluster master! + if (size > sizeof(past_hearts[0].data)) { + LOG(0, 0, 0, "Received an oversize heartbeat from %s (%d)!\n", fmtaddr(addr, 0), size); + return -1; + } + if (s < sizeof(*h)) goto shortpacket; @@ -1770,7 +1774,7 @@ int processcluster(uint8_t *data, int size, in_addr_t addr) case C_FORWARD_DAE: // Forwarded DAE packet. pass off to processdae. if (!config->cluster_iam_master) { - LOG(0, 0, 0, "I'm not the master, but I got a C_FORWARD_%s from %s?\n", + LOG(0, 0, 0, "I'm not the master, but I got a C_FORWARD%s from %s?\n", type == C_FORWARD_DAE ? "_DAE" : "", fmtaddr(addr, 0)); return -1;