rtnl fd check
Prevent accidental damage from rtnl library if fd is uninitialized.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
diff --git a/ip/ip.c b/ip/ip.c
index c29d2f3..091e9ef 100644
--- a/ip/ip.c
+++ b/ip/ip.c
@@ -36,7 +36,7 @@
char * _SL_ = NULL;
char *batch_file = NULL;
int force = 0;
-struct rtnl_handle rth;
+struct rtnl_handle rth = { .fd = -1 };
static void usage(void) __attribute__((noreturn));
diff --git a/lib/libnetlink.c b/lib/libnetlink.c
index 67951fe..5c6a4dc 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
@@ -27,7 +27,10 @@
void rtnl_close(struct rtnl_handle *rth)
{
- close(rth->fd);
+ if (rth->fd >= 0) {
+ close(rth->fd);
+ rth->fd = -1;
+ }
}
int rtnl_open_byproto(struct rtnl_handle *rth, unsigned subscriptions,