summaryrefslogtreecommitdiff
path: root/src/plugin.c
diff options
context:
space:
mode:
authorStefan Bühler <stbuehler@web.de>2010-08-05 22:55:18 +0000
committerStefan Bühler <stbuehler@web.de>2010-08-05 22:55:18 +0000
commit614bb7538dc9bbccf4299386f8847be018f7d63d (patch)
tree1418ca7f06403d0cb89c90c5602dbc17a4e1dd50 /src/plugin.c
parent12f375f3b186a6abd38874a96ec0f80fc8e7805b (diff)
downloadlighttpd-git-614bb7538dc9bbccf4299386f8847be018f7d63d.tar.gz
Add check to stop loading plugins twice
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2751 152afb58-edef-0310-8abb-c4023f1b3aa9
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugin.c b/src/plugin.c
index 0690629a..2a14e2cd 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -120,12 +120,19 @@ int plugins_load(server *srv) {
plugin *p;
int (*init)(plugin *pl);
const char *error;
- size_t i;
+ size_t i, j;
for (i = 0; i < srv->srvconf.modules->used; i++) {
data_string *d = (data_string *)srv->srvconf.modules->data[i];
char *modules = d->value->ptr;
+ for (j = 0; j < i; j++) {
+ if (buffer_is_equal(d->value, ((data_string *) srv->srvconf.modules->data[j])->value)) {
+ log_error_write(srv, __FILE__, __LINE__, "sbs", "Cannot load plugin", d->value, "more than once");
+ return -1;
+ }
+ }
+
buffer_copy_string_buffer(srv->tmp_buf, srv->srvconf.modules_dir);
buffer_append_string_len(srv->tmp_buf, CONST_STR_LEN("/"));