Dear, Ondrej Zajicek.

Вы писали 20 марта 2010 г., 3:30:42:

> diff -uprN bird-1.2.1/proto/ospf/packet.c bird-1.2.1-/proto/ospf/packet.c
> --- bird-1.2.1/proto/ospf/packet.c      2010-01-14 11:06:27.000000000 +0100
> +++ bird-1.2.1-/proto/ospf/packet.c     2010-03-19 19:24:47.000000000 +0100
> @@ -179,7 +179,7 @@ ospf_pkt_checkauth(struct ospf_neighbor 
>          return 0;
>        }
>  
> -      if (ntohs(pkt->length) + OSPF_AUTH_CRYPT_SIZE != size)
> +      if (ntohs(pkt->length) + OSPF_AUTH_CRYPT_SIZE < size)
>        {
>          OSPF_TRACE(D_PACKETS, "OSPF_auth: size mismatch (%d vs %d)",
>           ntohs(pkt->length) + OSPF_AUTH_CRYPT_SIZE, size);

The patch does not work. If the IP packet contains the LLS block, the size
ntohs (pkt-> length) + OSPF_AUTH_CRYPT_SIZE  and so will be less than the size 
of an IP packet, as the size of the LLS block included in size IP packet.
We must either somehow assume the size of LLS block or remove all checks on the 
size of the package.

--

Best regards,
Vitaliy
Kolodinsky
BYVK-RIPE
ISP Atlant Telecom
kolodin...@telecom.by

Reply via email to