diff --git a/libeasy/VERSION b/libeasy/VERSION
index 7ec1d6db40877765247db18e7f9a4e36a0def4ad..276cbf9e2858c779297bb9f73b34170302949ec4 100644
--- a/libeasy/VERSION
+++ b/libeasy/VERSION
@@ -1 +1 @@
-2.1.0
+2.3.0
diff --git a/libeasy/if_utils.c b/libeasy/if_utils.c
index 7c39f7a2ae82d0906c6bca0c871fd892357e2e65..22d00a8acb45c11097f260907af849c50fe8fc86 100644
--- a/libeasy/if_utils.c
+++ b/libeasy/if_utils.c
@@ -60,13 +60,6 @@ static int if_openlink(const char *ifname, struct nl_sock **s, struct rtnl_link
 	}
 
 	nl_connect(sk, NETLINK_ROUTE);
-	link = rtnl_link_alloc();
-	if (link == NULL) {
-		ret = -errno;
-		nl_socket_free(sk);
-		return ret;
-	}
-
 	if (rtnl_link_get_kernel(sk, 0, ifname, &link) < 0) {
 		ret = -1;
 		goto out;
@@ -282,6 +275,7 @@ int LIBEASY_API if_getaddrs(const char *ifname, struct ip_address *addrs,
 		naddr = (struct rtnl_addr *)nobj;
 	}
 
+	nl_cache_free(res);
 out:
 	if_closelink(sk, link);