Older compilers reject this, so fix up the remaining two cases after previous patches. Fixes: 59f03bf14835f ("tunnel: add geneve support") Signed-off-by: Phil Sutter --- src/mnl.c | 3 +-- src/netlink.c | 11 +++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/mnl.c b/src/mnl.c index b9efd3cfd3cea..364773c5642c6 100644 --- a/src/mnl.c +++ b/src/mnl.c @@ -1544,6 +1544,7 @@ static void obj_tunnel_add_opts(struct nftnl_obj *nlo, struct tunnel *tunnel) { struct nftnl_tunnel_opts *opts; struct nftnl_tunnel_opt *opt; + struct tunnel_geneve *geneve; switch (tunnel->type) { case TUNNEL_ERSPAN: @@ -1594,8 +1595,6 @@ static void obj_tunnel_add_opts(struct nftnl_obj *nlo, struct tunnel *tunnel) nftnl_obj_set_data(nlo, NFTNL_OBJ_TUNNEL_OPTS, &opts, sizeof(struct nftnl_tunnel_opts *)); break; case TUNNEL_GENEVE: - struct tunnel_geneve *geneve; - opts = nftnl_tunnel_opts_alloc(NFTNL_TUNNEL_TYPE_GENEVE); if (!opts) memory_allocation_error(); diff --git a/src/netlink.c b/src/netlink.c index 5e59cb7b2d8f2..5c263f39791f1 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -1905,7 +1905,9 @@ static int obj_parse_udata_cb(const struct nftnl_udata *attr, void *data) static int tunnel_parse_opt_cb(struct nftnl_tunnel_opt *opt, void *data) { + struct tunnel_geneve *geneve; struct obj *obj = data; + const void *gnv_data; switch (nftnl_tunnel_opt_get_type(opt)) { case NFTNL_TUNNEL_TYPE_ERSPAN: @@ -1939,9 +1941,6 @@ static int tunnel_parse_opt_cb(struct nftnl_tunnel_opt *opt, void *data) { } break; case NFTNL_TUNNEL_TYPE_GENEVE: - struct tunnel_geneve *geneve; - const void *data; - if (!obj->tunnel.type) { init_list_head(&obj->tunnel.geneve_opts); obj->tunnel.type = TUNNEL_GENEVE; @@ -1958,11 +1957,11 @@ static int tunnel_parse_opt_cb(struct nftnl_tunnel_opt *opt, void *data) { geneve->geneve_class = nftnl_tunnel_opt_get_u16(opt, NFTNL_TUNNEL_GENEVE_CLASS); if (nftnl_tunnel_opt_get_flags(opt) & (1 << NFTNL_TUNNEL_GENEVE_DATA)) { - data = nftnl_tunnel_opt_get_data(opt, NFTNL_TUNNEL_GENEVE_DATA, + gnv_data = nftnl_tunnel_opt_get_data(opt, NFTNL_TUNNEL_GENEVE_DATA, &geneve->data_len); - if (!data) + if (!gnv_data) return -1; - memcpy(&geneve->data, data, geneve->data_len); + memcpy(&geneve->data, gnv_data, geneve->data_len); } list_add_tail(&geneve->list, &obj->tunnel.geneve_opts); -- 2.54.0