mirror of
https://github.com/opnsense/src.git
synced 2026-02-20 00:11:07 -05:00
Current Netlink message writer code relies on executing callbacks
with arbitrary data (pointer or integer) to flush the completed
messages.
This arbitrary data is stored as a union of { void *, uint64_t }.
At some stage, the message flushing code copied this data, using
direct uint64_t assignment instead of copying the union. It lead
to failure on CHERI, as sizeof(pointer) == 16 there.
Fix the code by making union non-anonymous and copying it entirely.
Reviewed by: br, jhb, jrtc27
Differential Revision: https://reviews.freebsd.org/D39557
MFC after: 2 weeks
|
||
|---|---|---|
| .. | ||
| route | ||
| netlink.h | ||
| netlink_ctl.h | ||
| netlink_debug.h | ||
| netlink_domain.c | ||
| netlink_generic.c | ||
| netlink_generic.h | ||
| netlink_generic_kpi.c | ||
| netlink_glue.c | ||
| netlink_io.c | ||
| netlink_linux.h | ||
| netlink_message_parser.c | ||
| netlink_message_parser.h | ||
| netlink_message_writer.c | ||
| netlink_message_writer.h | ||
| netlink_module.c | ||
| netlink_route.c | ||
| netlink_route.h | ||
| netlink_snl.h | ||
| netlink_snl_generic.h | ||
| netlink_snl_route.h | ||
| netlink_snl_route_compat.h | ||
| netlink_snl_route_parsers.h | ||
| netlink_var.h | ||