From 615de92974b204e850cbb9ab5b17673c6271331a Mon Sep 17 00:00:00 2001 From: henri Date: Sun, 21 Oct 2012 19:44:26 +0000 Subject: [PATCH] Ensure that the nsock engine_hint refers to a valid one. If not, abort execution. --- nsock/src/nsock_engines.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/nsock/src/nsock_engines.c b/nsock/src/nsock_engines.c index a13b5e23c..f26fec9d2 100644 --- a/nsock/src/nsock_engines.c +++ b/nsock/src/nsock_engines.c @@ -111,9 +111,20 @@ void nsock_set_default_engine(char *engine) { if (engine_hint) free(engine_hint); - if (engine) - engine_hint = strdup(engine); - else + if (engine) { + int i; + + for (i = 0; available_engines[i] != NULL; i++) { + if (strcmp(engine, available_engines[i]->name) == 0) { + engine_hint = strdup(engine); + return; + } + } + fatal("Unknown or non-available IO engine: %s\n", engine); + } else { + /* having engine = NULL is fine. This is actually the + * way to tell nsock to use the default engine again. */ engine_hint = NULL; + } }