Mailing List Archive

[PATCH] fix spi deletion

I don't have access to any VPN that the commit 331 fixed, and have
almost no understanding of IPSEC, so pardon me if the following is
completely bogus.

I had some trouble with a concentrator, which seems to send weird
isakmp delete payloads. The SPI specified in the delete payload does
not match the current transmit SPI, and when the packet is just
ignored, everything is fine.

However, as the current vpnc accepts this packet, two things happen:

1) do_phase2_qm opens a new socket, which is unknown to the main loop
doing select. It means that vpnc will get stuck in a busy loop because
there are still data on the old socket, but they are not read anymore,
and the new socket is not select()ed at all.

2) if the above issue is fixed, vpnc still eventually fails with "HMAC
mismatch in ESP mode".

The attached patches fix these two issued by skipping opening of a new
esp socket when there already is one, and by ignoring delete payloads
with spi other than our current tx.spi .

Jindrich Makovicka