Patchwork [7/7] netfilter: nf_ct_helper: Fix logging for dropped packets

login
register
mail settings
Submitter Joe Perches
Date Feb. 19, 2013, 7:51 a.m.
Message ID <1361260267.5920.15.camel@joe-AO722>
Download mbox | patch
Permalink /patch/221646/
State Accepted
Headers show

Comments

Joe Perches - Feb. 19, 2013, 7:51 a.m.
On Tue, 2013-02-19 at 02:50 +0100, Pablo Neira Ayuso wrote:
> On Mon, Feb 18, 2013 at 05:33:14PM -0800, Joe Perches wrote:
> > On Tue, 2013-02-19 at 02:11 +0100, Pablo Neira Ayuso wrote:
> > > On Mon, Feb 18, 2013 at 04:22:02PM -0800, Joe Perches wrote:
> > > > On Tue, 2013-02-19 at 01:10 +0100, pablo@netfilter.org wrote:
> > > > > This patch modifies the existing code to provide more specific
> > > > > error message in the scope of each helper to help users to debug
> > > > > the reason why the packet has been dropped, ie:
> > > > []
> > > > > diff --git a/include/net/netfilter/nf_conntrack_helper.h b/include/net/netfilter/nf_conntrack_helper.h
> > > > []
> > > > > @@ -100,6 +100,9 @@ struct nf_ct_helper_expectfn {
> > > > >  	void (*expectfn)(struct nf_conn *ct, struct nf_conntrack_expect *exp);
> > > > >  };
> > > > >  
> > > > > +extern void nf_ct_helper_log(struct sk_buff *skb, const struct nf_conn *,
> > > > > +			     const char *fmt, ...);

Hi again Pablo.

Sorry, I didn't look at the function implementation.

It doesn't use the var args that follow fmt.
Two current uses have format and args aren't emitted correctly.

This is needed:

From: Joe Perches <joe@perches.com>

Update nf_ct_helper_log to emit args along with the format.

Signed-off-by: Joe Perches <joe@perches.com>
---
 net/netfilter/nf_conntrack_helper.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)



--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pablo Neira - Feb. 19, 2013, 8:17 p.m.
On Mon, Feb 18, 2013 at 11:51:07PM -0800, Joe Perches wrote:
> 
> Sorry, I didn't look at the function implementation.
> 
> It doesn't use the var args that follow fmt.
> Two current uses have format and args aren't emitted correctly.

Thanks Joe, will pass this to David asap.

Regards.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
index 013cdf6..3ebc2ae 100644
--- a/net/netfilter/nf_conntrack_helper.c
+++ b/net/netfilter/nf_conntrack_helper.c
@@ -341,6 +341,13 @@  void nf_ct_helper_log(struct sk_buff *skb, const struct nf_conn *ct,
 {
 	const struct nf_conn_help *help;
 	const struct nf_conntrack_helper *helper;
+	struct va_format vaf;
+	va_list args;
+
+	va_start(args, fmt);
+
+	vaf.fmt = fmt;
+	vaf.va = &args;
 
 	/* Called from the helper function, this call never fails */
 	help = nfct_help(ct);
@@ -349,7 +356,9 @@  void nf_ct_helper_log(struct sk_buff *skb, const struct nf_conn *ct,
 	helper = rcu_dereference(help->helper);
 
 	nf_log_packet(nf_ct_l3num(ct), 0, skb, NULL, NULL, NULL,
-		      "nf_ct_%s: dropping packet: %s ", helper->name, fmt);
+		      "nf_ct_%s: dropping packet: %pV", helper->name, &vaf);
+
+	va_end(args);
 }
 EXPORT_SYMBOL_GPL(nf_ct_helper_log);