Hi,
This should be 0 instead, not sure why using info->nlhdr->nlmsg_flags for this netlink GET operation.
That's just my mistake, thank you for your review. I'll send a revised patch again later today.
BR, Yoshiyuki
On Sun, Apr 26, 2020 at 7:29 PM Pablo Neira Ayuso pablo@netfilter.org wrote:
Hi,
On Wed, Apr 22, 2020 at 11:42:11PM +0900, Yoshiyuki Kurauchi wrote:
In drivers/net/gtp.c, gtp_genl_dump_pdp() should set NLM_F_MULTI flag since it returns multipart message. This patch adds a new arg "flags" in gtp_genl_fill_info() so that flags can be set by the callers.
Signed-off-by: Yoshiyuki Kurauchi ahochauwaaaaa@gmail.com
drivers/net/gtp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 672cd2caf2fb..10fa731bae6d 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -1097,7 +1097,7 @@ static int gtp_genl_new_pdp(struct sk_buff *skb,
struct genl_info *info)
}
static struct pdp_ctx *gtp_find_pdp_by_link(struct net *net,
struct nlattr *nla[])
struct nlattr *nla[]){ struct gtp_dev *gtp;
@@ -1169,11 +1169,11 @@ static int gtp_genl_del_pdp(struct sk_buff *skb,
struct genl_info *info)
static struct genl_family gtp_genl_family;
static int gtp_genl_fill_info(struct sk_buff *skb, u32 snd_portid, u32
snd_seq,
u32 type, struct pdp_ctx *pctx)
int flags, u32 type, struct pdp_ctx *pctx){ void *genlh;
genlh = genlmsg_put(skb, snd_portid, snd_seq, >p_genl_family, 0,
genlh = genlmsg_put(skb, snd_portid, snd_seq, >p_genl_family,flags,
type); if (genlh == NULL) goto nlmsg_failure;@@ -1227,8 +1227,8 @@ static int gtp_genl_get_pdp(struct sk_buff *skb,
struct genl_info *info)
goto err_unlock; }
err = gtp_genl_fill_info(skb2, NETLINK_CB(skb).portid,info->snd_seq, info->nlhdr->nlmsg_type,pctx);
err = gtp_genl_fill_info(skb2, NETLINK_CB(skb).portid,info->snd_seq,
info->nlhdr->nlmsg_flags,info->nlhdr->nlmsg_type, pctx);
This should be 0 instead, not sure why using info->nlhdr->nlmsg_flags for this netlink GET operation.
if (err < 0) goto err_unlock_free;@@ -1271,6 +1271,7 @@ static int gtp_genl_dump_pdp(struct sk_buff *skb, gtp_genl_fill_info(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq,
NLM_F_MULTI,This one looks fine to me.
cb->nlh->nlmsg_type, pctx)) { cb->args[0] = i; cb->args[1] = j;-- 2.17.1