|
@@ -4657,6 +4657,7 @@ static int nf_tables_fill_gen_info(struct sk_buff *skb, struct net *net,
|
|
|
{
|
|
|
struct nlmsghdr *nlh;
|
|
|
struct nfgenmsg *nfmsg;
|
|
|
+ char buf[TASK_COMM_LEN];
|
|
|
int event = nfnl_msg_type(NFNL_SUBSYS_NFTABLES, NFT_MSG_NEWGEN);
|
|
|
|
|
|
nlh = nlmsg_put(skb, portid, seq, event, sizeof(struct nfgenmsg), 0);
|
|
@@ -4668,7 +4669,9 @@ static int nf_tables_fill_gen_info(struct sk_buff *skb, struct net *net,
|
|
|
nfmsg->version = NFNETLINK_V0;
|
|
|
nfmsg->res_id = htons(net->nft.base_seq & 0xffff);
|
|
|
|
|
|
- if (nla_put_be32(skb, NFTA_GEN_ID, htonl(net->nft.base_seq)))
|
|
|
+ if (nla_put_be32(skb, NFTA_GEN_ID, htonl(net->nft.base_seq)) ||
|
|
|
+ nla_put_be32(skb, NFTA_GEN_PROC_PID, htonl(task_pid_nr(current))) ||
|
|
|
+ nla_put_string(skb, NFTA_GEN_PROC_NAME, get_task_comm(buf, current)))
|
|
|
goto nla_put_failure;
|
|
|
|
|
|
nlmsg_end(skb, nlh);
|