diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-06-25 16:02:13 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-07-16 14:53:36 +0200 |
commit | 0159a5404754fcf4594329df8c5821c88035bd5f (patch) | |
tree | d194e533bdc2fb3d9e3c59535210aa32bc707238 /src/libhydra/plugins/kernel_klips/kernel_klips_ipsec.c | |
parent | 99dc3d2c1570b3d0d8efff15e78f67eb6ae0ff24 (diff) | |
download | strongswan-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.c | 6 |
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 */ |