mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-01 12:47:16 +00:00
* lib/checksum.c: (fletcher_checksum) Switch the second phase of the checksum
back to the old ospfd logic.
The isisd-derived version:
a) is very hard to follow
b) had some kind of subtle bug that caused it be wrong when c0=0 and c1=254
(potentially fixable by doing the mods before adjusting x and y)
Additionally:
- explicitely cast expressions using non-internal variables to int, to ensure
the result is signed.
- defensively change the length argument to 'size_t', to ensure the code
works with that argument being unsigned..
Thanks to Joakim Tjernlund for the investigative work into this bug.
* tests/test-checksum.c: new file to exercise the checksum code.
|
||
|---|---|---|
| .. | ||
| .cvsignore | ||
| .gitignore | ||
| aspath_test.c | ||
| bgp_capability_test.c | ||
| bgp_mp_attr_test.c | ||
| ecommunity_test.c | ||
| heavy-thread.c | ||
| heavy-wq.c | ||
| heavy.c | ||
| main.c | ||
| Makefile.am | ||
| test-buffer.c | ||
| test-checksum.c | ||
| test-memory.c | ||
| test-privs.c | ||
| test-sig.c | ||
| test-stream.c | ||