summaryrefslogtreecommitdiffstats
path: root/proto/ospf
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/packet.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/proto/ospf/packet.c b/proto/ospf/packet.c
index ed5dd9d..c6b233f 100644
--- a/proto/ospf/packet.c
+++ b/proto/ospf/packet.c
@@ -126,7 +126,7 @@ ospf_pkt_checkauth(struct ospf_neighbor *n, struct ospf_iface *ifa, struct ospf_
break;
case OSPF_AUTH_SIMPLE:
pass = password_find(ifa->passwords, 1);
- if(!pass)
+ if (!pass)
{
OSPF_TRACE(D_PACKETS, "OSPF_auth: no password found");
return 0;
@@ -149,6 +149,7 @@ ospf_pkt_checkauth(struct ospf_neighbor *n, struct ospf_iface *ifa, struct ospf_
OSPF_TRACE(D_PACKETS, "OSPF_auth: wrong size of md5 digest");
return 0;
}
+
if (ntohs(pkt->length) + OSPF_AUTH_CRYPT_SIZE != size)
{
OSPF_TRACE(D_PACKETS, "OSPF_auth: size mismatch (%d vs %d)",
@@ -164,21 +165,24 @@ ospf_pkt_checkauth(struct ospf_neighbor *n, struct ospf_iface *ifa, struct ospf_
tail = ((void *)pkt) + ntohs(pkt->length);
- WALK_LIST(ptmp, *(ifa->passwords))
+ if (ifa->passwords)
{
- if (pkt->u.md5.keyid != ptmp->id) continue;
- if ((ptmp->accfrom > now_real) || (ptmp->accto < now_real)) continue;
- pass = ptmp;
- break;
+ WALK_LIST(ptmp, *(ifa->passwords))
+ {
+ if (pkt->u.md5.keyid != ptmp->id) continue;
+ if ((ptmp->accfrom > now_real) || (ptmp->accto < now_real)) continue;
+ pass = ptmp;
+ break;
+ }
}
- if(!pass)
+ if (!pass)
{
OSPF_TRACE(D_PACKETS, "OSPF_auth: no suitable md5 password found");
return 0;
}
- if(n)
+ if (n)
{
if(ntohs(pkt->u.md5.csn) < n->csn)
{