diff options
author | Phil Sutter <phil@nwl.cc> | 2020-02-14 18:20:29 +0100 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2020-02-19 11:45:44 +0100 |
commit | 629ee38dca48651bc8c0eedf2f3a0066a6c0aa5b (patch) | |
tree | 18d43f4b117a286f2a80ec70249c39e93aa501c0 /src/flowtable.c | |
parent | 04cc28d8d6923ea66b08ae9a74d81d8b6ac5b2d7 (diff) |
src: Fix for reading garbage in nftnl_chain getters
In {s,u}{32,64} type getters nftnl_assert() is called to make sure
returned data length matches expectations. Therefore all attributes must
set data_len, which NFTNL_CHAIN_DEVICES didn't.
While being at it, do the same change for NFTNL_FLOWTABLE_DEVICES as
well to make code a bit more consistent although the problem was fixed
for flowtables with commit f8eed54150fd4 ("flowtable: Fix for reading
garbage") already (but in the other direction).
Fixes: e3ac19b5ec162 ("chain: multi-device support")
Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'src/flowtable.c')
-rw-r--r-- | src/flowtable.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/flowtable.c b/src/flowtable.c index 1e235d0..635322d 100644 --- a/src/flowtable.c +++ b/src/flowtable.c @@ -230,6 +230,7 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c, *data_len = sizeof(int32_t); return &c->family; case NFTNL_FLOWTABLE_DEVICES: + *data_len = 0; return &c->dev_array[0]; case NFTNL_FLOWTABLE_SIZE: *data_len = sizeof(int32_t); |