On Thu, Nov 09, 2023 at 04:19:29PM +0100, Thomas Haller wrote: > On Thu, 2023-11-09 at 16:14 +0100, Pablo Neira Ayuso wrote: > > On Wed, Nov 08, 2023 at 07:24:25PM +0100, Thomas Haller wrote: > > > We don't want to handle allocation errors, but crash via > > > memory_allocation_error(). > > > Also, we usually just allocate NFT_USERDATA_MAXLEN buffers. > > > > > > Add a helper for that and use it. > > > > > > Signed-off-by: Thomas Haller <thaller@xxxxxxxxxx> > > > --- > > > include/netlink.h | 3 +++ > > > src/mnl.c | 16 ++++------------ > > > src/netlink.c | 7 ++----- > > > src/netlink_linearize.c | 4 +--- > > > 4 files changed, 10 insertions(+), 20 deletions(-) > > > > > > diff --git a/include/netlink.h b/include/netlink.h > > > index 6766d7e8563f..15cbb332c8dd 100644 > > > --- a/include/netlink.h > > > +++ b/include/netlink.h > > > @@ -260,4 +260,7 @@ struct nft_expr_loc *nft_expr_loc_find(const > > > struct nftnl_expr *nle, > > > > > > struct dl_proto_ctx *dl_proto_ctx(struct rule_pp_ctx *ctx); > > > > > > +#define _nftnl_udata_buf_alloc() \ > > > + memory_allocation_check(nftnl_udata_buf_alloc(NFT_USERDATA > > > _MAXLEN)) > > > > Add a wrapper function, no macro. > > > > Hi, > > memory_allocation_error() is itself a macro, as it uses > __FILE__,__LINE__ In this case above, __FILE__ and __LINE__ does not provide much information? nftnl_expr_alloc() returns NULL when support for an expression is missing in libnftnl, that provides a hint on that, this is very rare and it can only happen when developing support for new expressions. Maybe simply say __func__ instead to know what function has failed when performing the memory allocation is a hint that is fine enough. > This is also a macro, to preserve those parameters. > > Thomas >