summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--system-linux.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/system-linux.c b/system-linux.c
index c406a3d..acfd40e 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -985,7 +985,7 @@ static void
system_if_clear_entries(struct device *dev, int type, int af)
{
struct clear_data clr;
- struct nl_cb *cb = nl_cb_alloc(NL_CB_DEFAULT);
+ struct nl_cb *cb;
struct rtmsg rtm = {
.rtm_family = af,
.rtm_flags = RTM_F_CLONED,
@@ -993,9 +993,6 @@ system_if_clear_entries(struct device *dev, int type, int af)
int flags = NLM_F_DUMP;
int pending = 1;
- if (!cb)
- return;
-
clr.af = af;
clr.dev = dev;
clr.type = type;
@@ -1011,6 +1008,10 @@ system_if_clear_entries(struct device *dev, int type, int af)
return;
}
+ cb = nl_cb_alloc(NL_CB_DEFAULT);
+ if (!cb)
+ return;
+
clr.msg = nlmsg_alloc_simple(type, flags);
if (!clr.msg)
goto out;