diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-06-25 15:56:31 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-07-16 14:53:36 +0200 |
commit | 7ae26710364bae6962457537f16c8a7bc1dddaa9 (patch) | |
tree | ff7816ba54b0b95e22a2f3ad5a5a62988c11e506 /src/libcharon/plugins/dhcp/dhcp_socket.c | |
parent | 0159a5404754fcf4594329df8c5821c88035bd5f (diff) | |
download | strongswan-7ae26710364bae6962457537f16c8a7bc1dddaa9.tar.bz2 strongswan-7ae26710364bae6962457537f16c8a7bc1dddaa9.tar.xz |
Check rng return value when generating Transaction IDs in DHCP plugin
Diffstat (limited to 'src/libcharon/plugins/dhcp/dhcp_socket.c')
-rw-r--r-- | src/libcharon/plugins/dhcp/dhcp_socket.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libcharon/plugins/dhcp/dhcp_socket.c b/src/libcharon/plugins/dhcp/dhcp_socket.c index b4e9af788..8f976aead 100644 --- a/src/libcharon/plugins/dhcp/dhcp_socket.c +++ b/src/libcharon/plugins/dhcp/dhcp_socket.c @@ -366,7 +366,11 @@ METHOD(dhcp_socket_t, enroll, dhcp_transaction_t*, u_int32_t id; int try; - this->rng->get_bytes(this->rng, sizeof(id), (u_int8_t*)&id); + if (!this->rng->get_bytes(this->rng, sizeof(id), (u_int8_t*)&id)) + { + DBG1(DBG_CFG, "DHCP DISCOVER failed, no transaction ID"); + return NULL; + } transaction = dhcp_transaction_create(id, identity); this->mutex->lock(this->mutex); |