libiptc: fix retry path in TC_INIT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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@xxxxxxxxx>
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:
 	sockfd = socket(TC_AF, SOCK_RAW, IPPROTO_RAW);
 	if (sockfd < 0)
 		return NULL;
@@ -1324,7 +1325,6 @@ TC_INIT(const char *tablename)
 		abort();
 	}
 
-retry:
 	s = sizeof(info);
 
 	strcpy(info.name, tablename);
-- 
1.7.9.5


[Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

Powered by Linux