From 7ae26710364bae6962457537f16c8a7bc1dddaa9 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 25 Jun 2012 15:56:31 +0200 Subject: Check rng return value when generating Transaction IDs in DHCP plugin --- src/libcharon/plugins/dhcp/dhcp_socket.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/libcharon/plugins/dhcp/dhcp_socket.c') 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); -- cgit v1.2.3