aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/eap_simaka_pseudonym
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-07-06 10:11:21 +0200
committerMartin Willi <martin@revosec.ch>2012-07-16 14:53:36 +0200
commite37f9ac2c9f30f45597e9355bbd283f4b8e4fd9b (patch)
tree0da280526d98b311b90a2bf11a5866148d402487 /src/libcharon/plugins/eap_simaka_pseudonym
parent8beeb8e116845ee23081b8ee7dc5365a4b9df039 (diff)
downloadstrongswan-e37f9ac2c9f30f45597e9355bbd283f4b8e4fd9b.tar.bz2
strongswan-e37f9ac2c9f30f45597e9355bbd283f4b8e4fd9b.tar.xz
Check rng return value when generating pseudonym in eap-simaka-pseudonym plugin
Diffstat (limited to 'src/libcharon/plugins/eap_simaka_pseudonym')
-rw-r--r--src/libcharon/plugins/eap_simaka_pseudonym/eap_simaka_pseudonym_provider.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libcharon/plugins/eap_simaka_pseudonym/eap_simaka_pseudonym_provider.c b/src/libcharon/plugins/eap_simaka_pseudonym/eap_simaka_pseudonym_provider.c
index 49c3ad328..3070b808a 100644
--- a/src/libcharon/plugins/eap_simaka_pseudonym/eap_simaka_pseudonym_provider.c
+++ b/src/libcharon/plugins/eap_simaka_pseudonym/eap_simaka_pseudonym_provider.c
@@ -15,6 +15,7 @@
#include "eap_simaka_pseudonym_provider.h"
+#include <debug.h>
#include <utils/hashtable.h>
typedef struct private_eap_simaka_pseudonym_provider_t private_eap_simaka_pseudonym_provider_t;
@@ -82,7 +83,10 @@ static identification_t *gen_identity(
{
char buf[8], hex[sizeof(buf) * 2 + 1];
- this->rng->get_bytes(this->rng, sizeof(buf), buf);
+ if (!this->rng->get_bytes(this->rng, sizeof(buf), buf))
+ {
+ return NULL;
+ }
chunk_to_hex(chunk_create(buf, sizeof(buf)), hex, FALSE);
return identification_create_from_string(hex);
@@ -106,6 +110,11 @@ METHOD(simaka_provider_t, gen_pseudonym, identification_t*,
}
pseudonym = gen_identity(this);
+ if (!pseudonym)
+ {
+ DBG1(DBG_CFG, "failed to generate pseudonym");
+ return NULL;
+ }
/* create new entries */
id = id->clone(id);