* [PATCH nft 1/2] utils: add memory_allocation_check() helper
@ 2023-11-08 18:24 Thomas Haller
2023-11-08 18:24 ` [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper Thomas Haller
2023-11-09 15:24 ` [PATCH nft 1/2] utils: add memory_allocation_check() helper Pablo Neira Ayuso
0 siblings, 2 replies; 11+ messages in thread
From: Thomas Haller @ 2023-11-08 18:24 UTC (permalink / raw)
To: NetFilter; +Cc: Thomas Haller
libnftables kills the process on out of memory (xmalloc()), so
when we use libraries that propagate ENOMEM to libnftables, we
also abort the process.
For example:
nlr = nftnl_rule_alloc();
if (!nlr)
memory_allocation_error();
Add memory_allocation_check() macro which can simplify this common
check to:
nlr = memory_allocation_check(nftnl_rule_alloc());
Signed-off-by: Thomas Haller <thaller@redhat.com>
---
include/utils.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/utils.h b/include/utils.h
index 36a28f893667..fcd7c598fe9f 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -142,6 +142,16 @@ extern void __memory_allocation_error(const char *filename, uint32_t line) __nor
#define memory_allocation_error() \
__memory_allocation_error(__FILE__, __LINE__);
+#define memory_allocation_check(cmd) \
+ ({ \
+ typeof((cmd)) _v = (cmd); \
+ const void *const _v2 = _v; \
+ \
+ if (!_v2) \
+ memory_allocation_error(); \
+ _v; \
+ })
+
extern void xfree(const void *ptr);
extern void *xmalloc(size_t size);
extern void *xmalloc_array(size_t nmemb, size_t size);
--
2.41.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper 2023-11-08 18:24 [PATCH nft 1/2] utils: add memory_allocation_check() helper Thomas Haller @ 2023-11-08 18:24 ` Thomas Haller 2023-11-09 15:14 ` Pablo Neira Ayuso 2023-11-09 15:24 ` [PATCH nft 1/2] utils: add memory_allocation_check() helper Pablo Neira Ayuso 1 sibling, 1 reply; 11+ messages in thread From: Thomas Haller @ 2023-11-08 18:24 UTC (permalink / raw) To: NetFilter; +Cc: Thomas Haller 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@redhat.com> --- 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)) + #endif /* NFTABLES_NETLINK_H */ diff --git a/src/mnl.c b/src/mnl.c index 0fb36bd588ee..1263c611cd20 100644 --- a/src/mnl.c +++ b/src/mnl.c @@ -823,9 +823,7 @@ int mnl_nft_chain_add(struct netlink_ctx *ctx, struct cmd *cmd, CHAIN_F_HW_OFFLOAD); } if (cmd->chain->comment) { - udbuf = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN); - if (!udbuf) - memory_allocation_error(); + udbuf = _nftnl_udata_buf_alloc(); if (!nftnl_udata_put_strz(udbuf, NFTNL_UDATA_CHAIN_COMMENT, cmd->chain->comment)) memory_allocation_error(); nftnl_chain_set_data(nlc, NFTNL_CHAIN_USERDATA, nftnl_udata_buf_data(udbuf), @@ -1057,9 +1055,7 @@ int mnl_nft_table_add(struct netlink_ctx *ctx, struct cmd *cmd, nftnl_table_set_u32(nlt, NFTNL_TABLE_FLAGS, cmd->table->flags); if (cmd->table->comment) { - udbuf = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN); - if (!udbuf) - memory_allocation_error(); + udbuf = _nftnl_udata_buf_alloc(); if (!nftnl_udata_put_strz(udbuf, NFTNL_UDATA_TABLE_COMMENT, cmd->table->comment)) memory_allocation_error(); nftnl_table_set_data(nlt, NFTNL_TABLE_USERDATA, nftnl_udata_buf_data(udbuf), @@ -1256,9 +1252,7 @@ int mnl_nft_set_add(struct netlink_ctx *ctx, struct cmd *cmd, nftnl_set_set_u32(nls, NFTNL_SET_DESC_SIZE, set->init->size); } - udbuf = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN); - if (!udbuf) - memory_allocation_error(); + udbuf = _nftnl_udata_buf_alloc(); if (!nftnl_udata_put_u32(udbuf, NFTNL_UDATA_SET_KEYBYTEORDER, set->key->byteorder)) memory_allocation_error(); @@ -1453,9 +1447,7 @@ int mnl_nft_obj_add(struct netlink_ctx *ctx, struct cmd *cmd, nftnl_obj_set_u32(nlo, NFTNL_OBJ_TYPE, obj->type); if (obj->comment) { - udbuf = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN); - if (!udbuf) - memory_allocation_error(); + udbuf = _nftnl_udata_buf_alloc(); if (!nftnl_udata_put_strz(udbuf, NFTNL_UDATA_OBJ_COMMENT, obj->comment)) memory_allocation_error(); nftnl_obj_set_data(nlo, NFTNL_OBJ_USERDATA, nftnl_udata_buf_data(udbuf), diff --git a/src/netlink.c b/src/netlink.c index 120a8ba9ceb1..0c858065ca15 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -175,11 +175,8 @@ struct nftnl_set_elem *alloc_nftnl_setelem(const struct expr *set, netlink_gen_stmt_stateful(stmt)); } } - if (elem->comment || expr->elem_flags) { - udbuf = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN); - if (!udbuf) - memory_allocation_error(); - } + if (elem->comment || expr->elem_flags) + udbuf = _nftnl_udata_buf_alloc(); if (elem->comment) { if (!nftnl_udata_put_strz(udbuf, NFTNL_UDATA_SET_ELEM_COMMENT, elem->comment)) diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c index 0c62341112d8..b5adc4d186c8 100644 --- a/src/netlink_linearize.c +++ b/src/netlink_linearize.c @@ -1760,9 +1760,7 @@ void netlink_linearize_rule(struct netlink_ctx *ctx, if (rule->comment) { struct nftnl_udata_buf *udata; - udata = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN); - if (!udata) - memory_allocation_error(); + udata = _nftnl_udata_buf_alloc(); if (!nftnl_udata_put_strz(udata, NFTNL_UDATA_RULE_COMMENT, rule->comment)) -- 2.41.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper 2023-11-08 18:24 ` [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper Thomas Haller @ 2023-11-09 15:14 ` Pablo Neira Ayuso 2023-11-09 15:19 ` Thomas Haller 0 siblings, 1 reply; 11+ messages in thread From: Pablo Neira Ayuso @ 2023-11-09 15:14 UTC (permalink / raw) To: Thomas Haller; +Cc: NetFilter 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@redhat.com> > --- > 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. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper 2023-11-09 15:14 ` Pablo Neira Ayuso @ 2023-11-09 15:19 ` Thomas Haller 2023-11-09 15:32 ` Pablo Neira Ayuso 0 siblings, 1 reply; 11+ messages in thread From: Thomas Haller @ 2023-11-09 15:19 UTC (permalink / raw) To: Pablo Neira Ayuso; +Cc: NetFilter 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@redhat.com> > > --- > > 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__ This is also a macro, to preserve those parameters. Thomas ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper 2023-11-09 15:19 ` Thomas Haller @ 2023-11-09 15:32 ` Pablo Neira Ayuso 2023-11-09 16:48 ` Thomas Haller 0 siblings, 1 reply; 11+ messages in thread From: Pablo Neira Ayuso @ 2023-11-09 15:32 UTC (permalink / raw) To: Thomas Haller; +Cc: NetFilter 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@redhat.com> > > > --- > > > 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 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper 2023-11-09 15:32 ` Pablo Neira Ayuso @ 2023-11-09 16:48 ` Thomas Haller 2023-11-09 19:12 ` Pablo Neira Ayuso 0 siblings, 1 reply; 11+ messages in thread From: Thomas Haller @ 2023-11-09 16:48 UTC (permalink / raw) To: Pablo Neira Ayuso; +Cc: NetFilter On Thu, 2023-11-09 at 16:32 +0100, Pablo Neira Ayuso wrote: > 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: > > > > > > Add a wrapper function, no macro. > > > > > > > > > memory_allocation_error() is itself a macro, as it uses > > __FILE__,__LINE__ > > In this case above, __FILE__ and __LINE__ does not provide much > information? In which case? The patch changes a repeated pattern to a macro(), without changing any behavior and without questioning the use of __FILE__:__LINE__. . > nftnl_expr_alloc() returns NULL when support for an expression is > missing in libnftnl, The patch is not about nftnl_expr_alloc(). Do you mean nftnl_udata_buf_alloc()? nftnl_udata_buf_alloc() fails exactly when malloc() fails. It's unrelated to missing "support for an expression". > 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. I wouldn't use __func__. It consumes more strings in the binary while providing less exact information. Thomas ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper 2023-11-09 16:48 ` Thomas Haller @ 2023-11-09 19:12 ` Pablo Neira Ayuso 0 siblings, 0 replies; 11+ messages in thread From: Pablo Neira Ayuso @ 2023-11-09 19:12 UTC (permalink / raw) To: Thomas Haller; +Cc: NetFilter On Thu, Nov 09, 2023 at 05:48:57PM +0100, Thomas Haller wrote: > On Thu, 2023-11-09 at 16:32 +0100, Pablo Neira Ayuso wrote: > > 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: > > > > > > > > Add a wrapper function, no macro. > > > > > > > > > > > > > memory_allocation_error() is itself a macro, as it uses > > > __FILE__,__LINE__ > > > > In this case above, __FILE__ and __LINE__ does not provide much > > information? > > In which case? The patch changes a repeated pattern to a macro(), > without changing any behavior and without questioning the use of > __FILE__:__LINE__. > . > > > nftnl_expr_alloc() returns NULL when support for an expression is > > missing in libnftnl, > > The patch is not about nftnl_expr_alloc(). Do you mean > nftnl_udata_buf_alloc()? > > nftnl_udata_buf_alloc() fails exactly when malloc() fails. It's > unrelated to missing "support for an expression". > > > 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. > > I wouldn't use __func__. It consumes more strings in the binary while > providing less exact information. OK, then if you prefer a generic OOM error message, that's also fine. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 1/2] utils: add memory_allocation_check() helper 2023-11-08 18:24 [PATCH nft 1/2] utils: add memory_allocation_check() helper Thomas Haller 2023-11-08 18:24 ` [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper Thomas Haller @ 2023-11-09 15:24 ` Pablo Neira Ayuso 2023-11-09 17:02 ` Thomas Haller 1 sibling, 1 reply; 11+ messages in thread From: Pablo Neira Ayuso @ 2023-11-09 15:24 UTC (permalink / raw) To: Thomas Haller; +Cc: NetFilter On Wed, Nov 08, 2023 at 07:24:24PM +0100, Thomas Haller wrote: > libnftables kills the process on out of memory (xmalloc()), so > when we use libraries that propagate ENOMEM to libnftables, we > also abort the process. > > For example: > > nlr = nftnl_rule_alloc(); > if (!nlr) > memory_allocation_error(); > > Add memory_allocation_check() macro which can simplify this common > check to: > > nlr = memory_allocation_check(nftnl_rule_alloc()); > > Signed-off-by: Thomas Haller <thaller@redhat.com> > --- > include/utils.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/include/utils.h b/include/utils.h > index 36a28f893667..fcd7c598fe9f 100644 > --- a/include/utils.h > +++ b/include/utils.h > @@ -142,6 +142,16 @@ extern void __memory_allocation_error(const char *filename, uint32_t line) __nor > #define memory_allocation_error() \ > __memory_allocation_error(__FILE__, __LINE__); > > +#define memory_allocation_check(cmd) \ > + ({ \ > + typeof((cmd)) _v = (cmd); \ > + const void *const _v2 = _v; \ > + \ > + if (!_v2) \ please don't hide a if branch inside a macro. > + memory_allocation_error(); \ > + _v; \ > + }) > + > extern void xfree(const void *ptr); > extern void *xmalloc(size_t size); > extern void *xmalloc_array(size_t nmemb, size_t size); > -- > 2.41.0 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 1/2] utils: add memory_allocation_check() helper 2023-11-09 15:24 ` [PATCH nft 1/2] utils: add memory_allocation_check() helper Pablo Neira Ayuso @ 2023-11-09 17:02 ` Thomas Haller 2023-11-15 8:52 ` Florian Westphal 0 siblings, 1 reply; 11+ messages in thread From: Thomas Haller @ 2023-11-09 17:02 UTC (permalink / raw) To: Pablo Neira Ayuso; +Cc: NetFilter On Thu, 2023-11-09 at 16:24 +0100, Pablo Neira Ayuso wrote: > On Wed, Nov 08, 2023 at 07:24:24PM +0100, Thomas Haller wrote: > > > > +#define memory_allocation_check(cmd) \ > > + ({ \ > > + typeof((cmd)) _v = (cmd); \ > > + const void *const _v2 = _v; \ > > + \ > > + if (!_v2) \ > > please don't hide a if branch inside a macro. What is the reason for this rule? Is there a style guide somewhere? > > > + memory_allocation_error(); \ > > + _v; \ > > + }) It could be instead: static inline void *__memory_allocation_check(const char *file, unsigned line, const void *ptr) { if (!ptr) __memory_allocation_error(file, line); return (void*) ptr; } #define memory_allocation_check(cmd) \ ((typeof(cmd) __memory_allocation_check(__FILE__, __LINE__, (cmd)) Doesn't seem to make a difference either way. Thomas ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 1/2] utils: add memory_allocation_check() helper 2023-11-09 17:02 ` Thomas Haller @ 2023-11-15 8:52 ` Florian Westphal 2023-11-15 9:06 ` Thomas Haller 0 siblings, 1 reply; 11+ messages in thread From: Florian Westphal @ 2023-11-15 8:52 UTC (permalink / raw) To: Thomas Haller; +Cc: Pablo Neira Ayuso, NetFilter Thomas Haller <thaller@redhat.com> wrote: > static inline void *__memory_allocation_check(const char *file, unsigned line, const void *ptr) { > if (!ptr) > __memory_allocation_error(file, line); > return (void*) ptr; > } > > #define memory_allocation_check(cmd) \ > ((typeof(cmd) __memory_allocation_check(__FILE__, __LINE__, (cmd)) > > Doesn't seem to make a difference either way. We seem to be moving in circles. I suspect your agenda is to avoid repeating the existing x = alloc() if (!x) barf() pattern when adding userhandle support? If so I think its best to just add a specific ubuf alloc wrapper that can't fail (i.e. like the 'xmalloc' wrappers). Like Pablo said, I don't see any added value in providing FILE/LINE errors on stderr here. It could be as simple as exit(). ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH nft 1/2] utils: add memory_allocation_check() helper 2023-11-15 8:52 ` Florian Westphal @ 2023-11-15 9:06 ` Thomas Haller 0 siblings, 0 replies; 11+ messages in thread From: Thomas Haller @ 2023-11-15 9:06 UTC (permalink / raw) To: Florian Westphal; +Cc: Pablo Neira Ayuso, NetFilter On Wed, 2023-11-15 at 09:52 +0100, Florian Westphal wrote: > Thomas Haller <thaller@redhat.com> wrote: > > static inline void *__memory_allocation_check(const char *file, > > unsigned line, const void *ptr) { > > if (!ptr) > > __memory_allocation_error(file, line); > > return (void*) ptr; > > } > > > > #define memory_allocation_check(cmd) \ > > ((typeof(cmd) __memory_allocation_check(__FILE__, __LINE__, > > (cmd)) > > > > Doesn't seem to make a difference either way. > > We seem to be moving in circles. > > I suspect your agenda is to avoid repeating the existing > > x = alloc() > if (!x) > barf() > > pattern when adding userhandle support? exactly. > > If so I think its best to just add a specific ubuf alloc wrapper that > can't fail (i.e. like the 'xmalloc' wrappers). I don't understand. _nftnl_udata_buf_alloc() *is* that specific wrapper. Maybe the name is bad... and such wrappers should have a "nft_x_" prefix (nft_x_nftnl_udata_buf_alloc()). > > Like Pablo said, I don't see any added value in providing FILE/LINE > errors on stderr here. It could be as simple as exit(). > I don't understand. The two patches don't change anything about that. There is no change in behavior -- aside introducing a convenience wrapper for the repeated ENOMEM check. If you want to change memory_allocation_error() to not use FILE/LINE or call exit(), then that is a separate discussion (I'd like to avoid). Thomas ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-11-15 9:06 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-08 18:24 [PATCH nft 1/2] utils: add memory_allocation_check() helper Thomas Haller 2023-11-08 18:24 ` [PATCH nft 2/2] netlink: add and use _nftnl_udata_buf_alloc() helper Thomas Haller 2023-11-09 15:14 ` Pablo Neira Ayuso 2023-11-09 15:19 ` Thomas Haller 2023-11-09 15:32 ` Pablo Neira Ayuso 2023-11-09 16:48 ` Thomas Haller 2023-11-09 19:12 ` Pablo Neira Ayuso 2023-11-09 15:24 ` [PATCH nft 1/2] utils: add memory_allocation_check() helper Pablo Neira Ayuso 2023-11-09 17:02 ` Thomas Haller 2023-11-15 8:52 ` Florian Westphal 2023-11-15 9:06 ` Thomas Haller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).