aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-06-25 16:02:13 +0200
committerMartin Willi <martin@revosec.ch>2012-07-16 14:53:36 +0200
commit0159a5404754fcf4594329df8c5821c88035bd5f (patch)
treed194e533bdc2fb3d9e3c59535210aa32bc707238 /src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c
parent99dc3d2c1570b3d0d8efff15e78f67eb6ae0ff24 (diff)
downloadstrongswan-0159a5404754fcf4594329df8c5821c88035bd5f.tar.bz2
strongswan-0159a5404754fcf4594329df8c5821c88035bd5f.tar.xz
Check rng return value when generating SPIs in kernel-klips plugin
Diffstat (limited to 'src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c')
-rw-r--r--src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c b/src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c
index b8d44d686..7e58cf30b 100644
--- a/src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c
+++ b/src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c
@@ -1520,12 +1520,12 @@ METHOD(kernel_ipsec_t, get_spi, status_t,
u_int32_t spi_gen;
rng = lib->crypto->create_rng(lib->crypto, RNG_WEAK);
- if (!rng)
+ if (!rng || !rng->get_bytes(rng, sizeof(spi_gen), (void*)&spi_gen))
{
- DBG1(DBG_KNL, "allocating SPI failed: no RNG");
+ DBG1(DBG_KNL, "allocating SPI failed");
+ DESTROY_IF(rng);
return FAILED;
}
- rng->get_bytes(rng, sizeof(spi_gen), (void*)&spi_gen);
rng->destroy(rng);
/* allocated SPIs lie within the range from 0xc0000000 to 0xcFFFFFFF */