diff options
-rw-r--r-- | system-linux.c | 9 |
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; |