Struct netlink_packet_audit::NetlinkAuditCodec
source · #[non_exhaustive]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§
source§impl NetlinkMessageCodec for NetlinkAuditCodec
impl NetlinkMessageCodec for NetlinkAuditCodec
source§fn 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
source§fn 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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more