diff options
author | Stefan Bühler <stbuehler@web.de> | 2010-08-05 22:55:18 +0000 |
---|---|---|
committer | Stefan Bühler <stbuehler@web.de> | 2010-08-05 22:55:18 +0000 |
commit | 614bb7538dc9bbccf4299386f8847be018f7d63d (patch) | |
tree | 1418ca7f06403d0cb89c90c5602dbc17a4e1dd50 /src/plugin.c | |
parent | 12f375f3b186a6abd38874a96ec0f80fc8e7805b (diff) | |
download | lighttpd-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.c | 9 |
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("/")); |