소스 검색

netfilter: ipt_ULOG: Move away from NLMSG_PUT().

And use nlmsg_data() while we're here too.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 13 년 전
부모
커밋
c2bd4baf41
1개의 변경된 파일8개의 추가작업 그리고 7개의 파일을 삭제
  1. 8 7
      net/ipv4/netfilter/ipt_ULOG.c

+ 8 - 7
net/ipv4/netfilter/ipt_ULOG.c

@@ -196,12 +196,15 @@ static void ipt_ulog_packet(unsigned int hooknum,
 
 
 	pr_debug("qlen %d, qthreshold %Zu\n", ub->qlen, loginfo->qthreshold);
 	pr_debug("qlen %d, qthreshold %Zu\n", ub->qlen, loginfo->qthreshold);
 
 
-	/* NLMSG_PUT contains a hidden goto nlmsg_failure !!! */
-	nlh = NLMSG_PUT(ub->skb, 0, ub->qlen, ULOG_NL_EVENT,
-			sizeof(*pm)+copy_len);
+	nlh = nlmsg_put(ub->skb, 0, ub->qlen, ULOG_NL_EVENT,
+			sizeof(*pm)+copy_len, 0);
+	if (!nlh) {
+		pr_debug("error during nlmsg_put\n");
+		goto out_unlock;
+	}
 	ub->qlen++;
 	ub->qlen++;
 
 
-	pm = NLMSG_DATA(nlh);
+	pm = nlmsg_data(nlh);
 
 
 	/* We might not have a timestamp, get one */
 	/* We might not have a timestamp, get one */
 	if (skb->tstamp.tv64 == 0)
 	if (skb->tstamp.tv64 == 0)
@@ -261,13 +264,11 @@ static void ipt_ulog_packet(unsigned int hooknum,
 			nlh->nlmsg_type = NLMSG_DONE;
 			nlh->nlmsg_type = NLMSG_DONE;
 		ulog_send(groupnum);
 		ulog_send(groupnum);
 	}
 	}
-
+out_unlock:
 	spin_unlock_bh(&ulog_lock);
 	spin_unlock_bh(&ulog_lock);
 
 
 	return;
 	return;
 
 
-nlmsg_failure:
-	pr_debug("error during NLMSG_PUT\n");
 alloc_failure:
 alloc_failure:
 	pr_debug("Error building netlink message\n");
 	pr_debug("Error building netlink message\n");
 	spin_unlock_bh(&ulog_lock);
 	spin_unlock_bh(&ulog_lock);