Faced with unexpected values or missing attributes, most of the netlink deserialization code would complain, drop the nftables object being constructed and carry on. Some error paths though instead call BUG() or assert(0) instead. This series eliminates at least the most prominent ones among those (patches 1 and 3). Patch 4 prevents object deserialization from aborting upon the first one with unexpected data. If netlink_delinearize_obj() returns NULL, an error message has been emitted already so just return 0 to the foreach loop so it continues with the next object. Patch 2 is just preparation work for patch 3. Phil Sutter (4): netlink_delinearize: Replace some BUG()s by error messages netlink: Pass netlink_ctx to netlink_delinearize_setelem() netlink: Keep going after set element parsing failures cache: Tolerate object deserialization failures include/netlink.h | 6 +++--- src/cache.c | 11 +++++------ src/monitor.c | 7 +++---- src/netlink.c | 15 +++++++++------ src/netlink_delinearize.c | 17 +++++++++++------ 5 files changed, 31 insertions(+), 25 deletions(-) -- 2.49.0