[XFRM] IPV6: Restrict bundle reusing
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / ipv6 / xfrm6_policy.c
index a3f68c8b737e866a42434a890b9dacec9a26fb3e..729b4748d6d3df45e361b5603b62a849d392a025 100644 (file)
@@ -50,7 +50,9 @@ __xfrm6_find_bundle(struct flowi *fl, struct xfrm_policy *policy)
                                 xdst->u.rt6.rt6i_src.plen);
                if (ipv6_addr_equal(&xdst->u.rt6.rt6i_dst.addr, &fl_dst_prefix) &&
                    ipv6_addr_equal(&xdst->u.rt6.rt6i_src.addr, &fl_src_prefix) &&
-                   xfrm_bundle_ok(xdst, fl, AF_INET6)) {
+                   xfrm_bundle_ok(xdst, fl, AF_INET6,
+                                  (xdst->u.rt6.rt6i_dst.plen != 128 ||
+                                   xdst->u.rt6.rt6i_src.plen != 128))) {
                        dst_clone(dst);
                        break;
                }