Interface group names must fit into IFNAMSIZ and be unique. But
authorbluhm <bluhm@openbsd.org>
Wed, 10 Feb 2021 14:41:53 +0000 (14:41 +0000)
committerbluhm <bluhm@openbsd.org>
Wed, 10 Feb 2021 14:41:53 +0000 (14:41 +0000)
commit44a45654aa78cc9d4e9b544c4d6d11d25f298ea9
tree13209183a1077061673496912d9426661935870f
parentbdd18b630f9df25419ca1a381d46a62bc9b62cc5
Interface group names must fit into IFNAMSIZ and be unique.  But
the kernel made the unique check before trunkating with strlcpy().
So there could be two interface groups with the same name.  The kif
is created by a name lookup.  The trunkated names are equal, so
there was only one kif owned by both groups.  When the groups got
destroyed, the single kif was removed twice from the RB tree.
Check length of group name before doing the unique check.
The empty group name was allowed and is now invalid.
Reported-by: syzbot+f47e8296ebd559f9bbff@syzkaller.appspotmail.com
OK deraadt@ gnezdo@ anton@ mvs@ claudio@
sys/net/if.c