kernel-netlink: reject policy refcount if the reqid differs
authorMartin Willi <martin@revosec.ch>
Mon, 3 Jun 2013 16:13:27 +0000 (18:13 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 19 Jun 2013 14:30:40 +0000 (16:30 +0200)
commit1551d8b13d14028fc26fb1a363c33aa3a1200882
treeb8f255fd0911891009c63561e59ec95a33c50fbe
parentde2debf8e0759c974c734cacab9549451eceb236
kernel-netlink: reject policy refcount if the reqid differs

Previously we silently replaced an existing policy with a new one if the
reqid changed for the same selectors. This will break an old policy in the
favour of the new one (for example if two clients behind the same NAT use
transport mode).

With this change any new policy gets rejected if the reqid differs. This will
make sure we break no existing policy. For rekeying and acquires we still can
have overlapping policies (as we use the same reqid), but for unrelated
connections this is not true anymore (it wasn't actually before, we just
silently broke the existing policy).
src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c