diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2016-06-29 08:20:12 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2016-06-29 08:20:12 -0400 |
commit | eefb94bb39b7e2abbf5615df742b5a20a04bc6a0 (patch) | |
tree | 9d902de8a3c9f7ac35b95a51d3f24f6530e0357f /src/plugin.c | |
parent | b482bfd1b881f0f5aee24c470a082e0ab785e505 (diff) | |
download | lighttpd-git-eefb94bb39b7e2abbf5615df742b5a20a04bc6a0.tar.gz |
fix error handling for portability (NetBSD)
thx joerg
Diffstat (limited to 'src/plugin.c')
-rw-r--r-- | src/plugin.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugin.c b/src/plugin.c index 7802aa56..638b46c6 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -175,7 +175,6 @@ int plugins_load(server *srv) { int plugins_load(server *srv) { plugin *p; int (*init)(plugin *pl); - const char *error; size_t i, j; for (i = 0; i < srv->srvconf.modules->used; i++) { @@ -263,8 +262,13 @@ int plugins_load(server *srv) { #else *(void **)(&init) = dlsym(p->lib, srv->tmp_buf->ptr); #endif - if ((error = dlerror()) != NULL) { - log_error_write(srv, __FILE__, __LINE__, "s", error); + if (NULL == init) { + const char *error = dlerror(); + if (error != NULL) { + log_error_write(srv, __FILE__, __LINE__, "ss", "dlsym:", error); + } else { + log_error_write(srv, __FILE__, __LINE__, "ss", "dlsym symbol not found:", srv->tmp_buf->ptr); + } plugin_free(p); return -1; |