gcc -Wmemset-elt-size diagnosed this. The code was only initializing
the first 1/sizeof(long) bytes. On 64-bit systems, this would mean only
events up to 0x20 were initialized.
This effectively reverses the security policy for some events with
higher ids, now permitting them on unprivileged sockets. Two that are
defined are NG_HCI_EVENT_LE (0x3e) and NG_HCI_EVENT_BT_LOGO (0xfe).
I am not familiar with this code, am not planning to test bluetooth, and
am not in any rush to commit this, I just saw that this warning appeared
to be a genuine bug. I do not know what the appropriate security policy
actually is. Please feel free to take this patch over if desired.