about summary refs log tree commit diff
path: root/src/platform/nm-linux-platform.c
diff options
context:
space:
mode:
authorJeremy Bicha <jbicha@ubuntu.com>2018-03-26 08:35:51 -0400
committerJeremy Bicha <jbicha@ubuntu.com>2018-03-26 08:35:51 -0400
commit95410d8dcdd0433894612785c89b821b9de4cc04 (patch)
tree66c57586825b10af593a84a00ee885aa257b5196 /src/platform/nm-linux-platform.c
parent6b60d03d200147c516db40716b1c58e2a86db1a5 (diff)
parentaee9265c9325331914e9fd42ce06e063fabdfcab (diff)
Merge tag 'debian/1.10.6-2' into bionic
network-manager Debian release 1.10.6-2
Diffstat (limited to 'src/platform/nm-linux-platform.c')
-rw-r--r--src/platform/nm-linux-platform.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index fe270e88..e5961c7e 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -4437,10 +4437,13 @@ event_valid_msg (NMPlatform *platform, struct nl_msg *msg, gboolean handle_event
 			nm_auto_nmpobj const NMPObject *obj_replace = NULL;
 			gboolean resync_required = FALSE;
 			gboolean only_dirty = FALSE;
+			gboolean is_ipv6;
 
-			if (NM_FLAGS_HAS (obj->ip_route.r_rtm_flags, RTM_F_CLONED)) {
-				/* a cloned route might be a response for RTM_GETROUTE. Check, whether it is. */
-				nm_assert (!nmp_object_is_alive (obj));
+			/* IPv4 routes that are a response to RTM_GETROUTE must have
+			 * the cloned flag while IPv6 routes don't have to. */
+			is_ipv6 = NMP_OBJECT_GET_TYPE (obj) == NMP_OBJECT_TYPE_IP6_ROUTE;
+			if (is_ipv6 || NM_FLAGS_HAS (obj->ip_route.r_rtm_flags, RTM_F_CLONED)) {
+				nm_assert (is_ipv6 || !nmp_object_is_alive (obj));
 				priv = NM_LINUX_PLATFORM_GET_PRIVATE (platform);
 				if (NM_FLAGS_HAS (priv->delayed_action.flags, DELAYED_ACTION_TYPE_WAIT_FOR_NL_RESPONSE)) {
 					guint i;