Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4376:364d9c7563df HEAD
Handle errors more correctly. Fixes problems with some OSes.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 16 Jun 2006 13:15:56 +0300 |
parents | 4fa4d1d299d3 |
children | 25b6b670656d |
files | src/lib/module-dir.c |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/module-dir.c Fri Jun 16 13:11:08 2006 +0300 +++ b/src/lib/module-dir.c Fri Jun 16 13:15:56 2006 +0300 @@ -24,14 +24,18 @@ const char *error; void *ret; + /* clear out old errors */ + (void)dlerror(); + /* get our init func */ ret = dlsym(module->handle, symbol); - - error = dlerror(); - if (error != NULL) { - i_error("module %s: dlsym(%s) failed: %s", - module->path, symbol, error); - ret = NULL; + if (ret == NULL) { + error = dlerror(); + if (error != NULL) { + i_error("module %s: dlsym(%s) failed: %s", + module->path, symbol, error); + ret = NULL; + } } return ret;