Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62566ca5 authored by David S. Miller's avatar David S. Miller
Browse files

netfilter: ebt_ulog: Move away from NLMSG_PUT().



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

Also, free and NULL out skb when nlmsg_put() fails and remove
pointless kernel log message.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a8edf8a6
Loading
Loading
Loading
Loading
+10 −13
Original line number Original line Diff line number Diff line
@@ -145,19 +145,24 @@ static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,


	if (!ub->skb) {
	if (!ub->skb) {
		if (!(ub->skb = ulog_alloc_skb(size)))
		if (!(ub->skb = ulog_alloc_skb(size)))
			goto alloc_failure;
			goto unlock;
	} else if (size > skb_tailroom(ub->skb)) {
	} else if (size > skb_tailroom(ub->skb)) {
		ulog_send(group);
		ulog_send(group);


		if (!(ub->skb = ulog_alloc_skb(size)))
		if (!(ub->skb = ulog_alloc_skb(size)))
			goto alloc_failure;
			goto unlock;
	}
	}


	nlh = NLMSG_PUT(ub->skb, 0, ub->qlen, 0,
	nlh = nlmsg_put(ub->skb, 0, ub->qlen, 0,
			size - NLMSG_ALIGN(sizeof(*nlh)));
			size - NLMSG_ALIGN(sizeof(*nlh)), 0);
	if (!nlh) {
		kfree(ub->skb);
		ub->skb = NULL;
		goto unlock;
	}
	ub->qlen++;
	ub->qlen++;


	pm = NLMSG_DATA(nlh);
	pm = nlmsg_data(nlh);


	/* Fill in the ulog data */
	/* Fill in the ulog data */
	pm->version = EBT_ULOG_VERSION;
	pm->version = EBT_ULOG_VERSION;
@@ -209,14 +214,6 @@ static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,


unlock:
unlock:
	spin_unlock_bh(lock);
	spin_unlock_bh(lock);

	return;

nlmsg_failure:
	pr_debug("error during NLMSG_PUT. This should "
		 "not happen, please report to author.\n");
alloc_failure:
	goto unlock;
}
}


/* this function is registered with the netfilter core */
/* this function is registered with the netfilter core */