Patchwork libiptc: fix retry path in TC_INIT

login
register
mail settings
Submitter Miguel GAIO
Date April 19, 2012, 10:14 a.m.
Message ID <1334830473.25428.2.camel@mgo-thinkpad>
Download mbox | patch
Permalink /patch/153716/
State Accepted
Headers show

Comments

Miguel GAIO - April 19, 2012, 10:14 a.m.
On Thu, 2012-04-19 at 01:12 +0200, Pablo Neira Ayuso wrote:

Hi,


> Hi Miguel,
> 
> On Tue, Apr 17, 2012 at 10:29:23AM +0200, Miguel GAIO wrote:
> > Hi,
> > 
> > There is an issue on TC_INIT retry path:
> > In error case, TC_FREE is called and close sockfd.
> > The retry does not reopen then always fail.
> > 
> > The proposing patch reopen sockfd in retry patch.
> > 
> > 
> > Miguel
> >
> > From 6dbb1a9f16c70a60c06559b31eac7ab3af789fa1 Mon Sep 17 00:00:00 2001
> > From: Miguel GAIO <miguel.gaio@efixo.com>
> > Date: Tue, 17 Apr 2012 10:16:28 +0200
> > Subject: [PATCH 2008/2008]  libiptc: TC_INIT fix retry
> > 
> > ---
> >  libiptc/libiptc.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/libiptc/libiptc.c b/libiptc/libiptc.c
> > index 63965e7..cd2ad9d 100644
> > --- a/libiptc/libiptc.c
> > +++ b/libiptc/libiptc.c
> > @@ -1314,6 +1314,7 @@ TC_INIT(const char *tablename)
> >  		return NULL;
> >  	}
> >  
> > +retry:
> 
> Still iptc_fn is set to TC_FREE. We have to move up to the beginning
> of TC_INIT.


Your right, I miss it.
I resend patch with the retry at the beginning of TC_INIT.
Pablo Neira - April 19, 2012, 4:55 p.m.
On Thu, Apr 19, 2012 at 12:14:33PM +0200, Miguel GAIO wrote:
> On Thu, 2012-04-19 at 01:12 +0200, Pablo Neira Ayuso wrote:
[...]
> > 
> > Still iptc_fn is set to TC_FREE. We have to move up to the beginning
> > of TC_INIT.
> 
> Your right, I miss it.
> I resend patch with the retry at the beginning of TC_INIT.

Applied, Thanks Miguel.
--
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

From 202e62cd5f143ce9ef5d7fc8cdd2aca81dc013bf Mon Sep 17 00:00:00 2001
From: Miguel GAIO <miguel.gaio@efixo.com>
Date: Thu, 19 Apr 2012 12:11:06 +0200
Subject: [PATCH]  libiptc: TC_INIT fix retry

---
 libiptc/libiptc.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libiptc/libiptc.c b/libiptc/libiptc.c
index 63965e7..f0f7815 100644
--- a/libiptc/libiptc.c
+++ b/libiptc/libiptc.c
@@ -1307,6 +1307,7 @@  TC_INIT(const char *tablename)
 	socklen_t s;
 	int sockfd;
 
+retry:
 	iptc_fn = TC_INIT;
 
 	if (strlen(tablename) >= TABLE_MAXNAMELEN) {
@@ -1324,7 +1325,6 @@  TC_INIT(const char *tablename)
 		abort();
 	}
 
-retry:
 	s = sizeof(info);
 
 	strcpy(info.name, tablename);
-- 
1.7.9.5