Struct netlink_packet_audit::NetlinkAuditCodec
source · [−]pub struct NetlinkAuditCodec { /* private fields */ }
Expand description
audit specific implementation of NetlinkMessageCodec
due to the
protocol violations in messages generated by kernal audit.
Among the known bugs in kernel audit messages:
nlmsg_len
sometimes contains the padding too (it shouldn’t)nlmsg_len
sometimes doesn’t contain the header (it really should)
See also:
- https://blog.des.no/2020/08/netlink-auditing-and-counting-bytes/
- https://github.com/torvalds/linux/blob/b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb/kernel/audit.c#L2386
- https://github.com/mozilla/libaudit-go/issues/24
- https://github.com/linux-audit/audit-userspace/issues/78
Trait Implementations
sourceimpl NetlinkMessageCodec for NetlinkAuditCodec
impl NetlinkMessageCodec for NetlinkAuditCodec
sourcefn decode<T>(src: &mut BytesMut) -> Result<Option<NetlinkMessage<T>>> where
T: NetlinkDeserializable + Debug,
fn decode<T>(src: &mut BytesMut) -> Result<Option<NetlinkMessage<T>>> where
T: NetlinkDeserializable + Debug,
Decode message of given type from datagram payload Read more
sourcefn encode<T>(msg: NetlinkMessage<T>, buf: &mut BytesMut) -> Result<()> where
T: Debug + NetlinkSerializable,
fn encode<T>(msg: NetlinkMessage<T>, buf: &mut BytesMut) -> Result<()> where
T: Debug + NetlinkSerializable,
Encode message to (datagram) buffer
Auto Trait Implementations
impl RefUnwindSafe for NetlinkAuditCodec
impl Send for NetlinkAuditCodec
impl Sync for NetlinkAuditCodec
impl Unpin for NetlinkAuditCodec
impl UnwindSafe for NetlinkAuditCodec
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more