On Sat, Apr 25, 2015 at 08:54:13PM +0100, Chris Boot wrote:
The problem happens because BIRD doesn’t verify the checksum by running Fletcher against the received packet and testing for zero; rather it: - sets the checksum in the packet to 0 - runs the checksum calculation on the LSA data - updates the checksum in the packet (and comes up with a different result) - complains when the result is not the same as what was in the packet
I believe the correct way to verify the checksum would be to run the algorithm against the unchanged packet (with the checksum intact) and verify that the result is zero.
Would a patch that changes this behaviour be welcome? I’ve written something up against the current git master, but haven’t yet tested it.
Hello You are most likley right. As i understand it, these checksums are modulo 255; therefore, in some cases they are not unique. Therefore simple computing new value and comparing it with received does not work. A patch would be definitely welcome. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."