aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/dhcp/dhcp_socket.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-06-25 15:56:31 +0200
committerMartin Willi <martin@revosec.ch>2012-07-16 14:53:36 +0200
commit7ae26710364bae6962457537f16c8a7bc1dddaa9 (patch)
treeff7816ba54b0b95e22a2f3ad5a5a62988c11e506 /src/libcharon/plugins/dhcp/dhcp_socket.c
parent0159a5404754fcf4594329df8c5821c88035bd5f (diff)
downloadstrongswan-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.c6
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);