kernel-pfkey: Clear receive buffer before sending request
authorTobias Brunner <tobias@strongswan.org>
Fri, 25 Oct 2019 09:07:11 +0000 (11:07 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 25 Oct 2019 11:53:06 +0000 (13:53 +0200)
commit62e7c68b61d87252119b648806c88d8ed291436b
tree383ca6d6e9568df30ed8d0295a6207a017322c0f
parenta463ef4435496d1e746e7dc2a112cdac4e0be288
kernel-pfkey: Clear receive buffer before sending request

Many of the messages sent by the kernel, including confirmations to our
requests, are sent as broadcasts to all PF_KEY sockets.  So if an
external tool is used to manage SAs/policies (e.g. unrelated to IPsec)
the receive buffer might be filled, resulting in errors like these:

  error sending to PF_KEY socket: No buffer space available

To avoid this, just clear the buffer before sending any message.

Fixes #3225.
src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c