summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-06-25 01:48:23 +0200
committerLennart Poettering <lennart@poettering.net>2008-06-25 01:48:23 +0200
commit38d9db9575547ac9354944bd307db752e37601f6 (patch)
tree0d6ff35fe4fd88868be4e4ebb5512261e87e6a37
parent409210f5b12b64f9cef06275bb5954ec8a261731 (diff)
filter out recursive 'multi' invocations and duplicate entries in the backend list
-rw-r--r--src/multi.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/multi.c b/src/multi.c
index e7db7f1..f6448d6 100644
--- a/src/multi.c
+++ b/src/multi.c
@@ -47,6 +47,13 @@ static int add_backend(struct private *p, const char *name) {
ca_assert(p);
ca_assert(b);
+ if (ca_streq(name, "multi"))
+ return CA_ERROR_NOTAVAILABLE;
+
+ for (b = p->backends; b; b = b->next)
+ if (ca_streq(b->context->driver, name))
+ return CA_ERROR_NOTAVAILABLE;
+
if (!(b = ca_new0(struct backend, 1)))
return CA_ERROR_OOM;