diff --git a/ip/ip.c b/ip/ip.c index c29d2f31..091e9ef2 100644 --- a/ip/ip.c +++ b/ip/ip.c @@ -36,7 +36,7 @@ int timestamp = 0; 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 67951fe7..5c6a4dc4 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,