summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authormpf <mpf@openbsd.org>2010-08-22 17:02:04 +0000
committermpf <mpf@openbsd.org>2010-08-22 17:02:04 +0000
commitbe584e86b513436dfc694be31211eb78b864caa8 (patch)
tree3704ad3b249162cd67131eac0710feda067f39c8 /lib/libc
parentMSG_EXIT can now have a return code in the message, so check for that (diff)
downloadwireguard-openbsd-be584e86b513436dfc694be31211eb78b864caa8.tar.xz
wireguard-openbsd-be584e86b513436dfc694be31211eb78b864caa8.zip
Fix a 16 year old bug in the sorting routine for non-contiguous netmasks.
For masks of identical length rn_lexobetter() did not stop on the first non-equal byte. This leads rn_addroute() to not detecting duplicate entries and thus we might create a very long list of masks to check for each node. This can have a huge impact on IPsec performance, where non-contiguous masks are used for the flow lookup. In a setup with 1300 flows we saw 400 duplicate masks and only a third of the expected throughput. Lots of help in narrowing this down from markus@. Improved comments from claudio@. OK markus@, claudio@
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions