From f47f36374646082cff0dd8258b39d986f7f21bc5 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sat, 5 Jan 2008 15:14:26 +0000 Subject: [PATCH] Fix dlerror() abuse. Organization: Straylight/Edgeware From: rjk@greenend.org.uk <> All tests now pass on my FreeBSD 6.2 VM. --- lib/plugin.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/plugin.c b/lib/plugin.c index 1c526de..abeaa66 100644 --- a/lib/plugin.c +++ b/lib/plugin.c @@ -84,22 +84,22 @@ const struct plugin *open_plugin(const char *name, function_t *get_plugin_function(const struct plugin *pl, const char *symbol) { function_t *f; - const char *e; f = (function_t *)dlsym(pl->dlhandle, symbol); - if((e = dlerror())) - fatal(0, "error looking up function '%s' in '%s': %s",symbol, pl->name, e); + if(!f) + fatal(0, "error looking up function '%s' in '%s': %s", + symbol, pl->name, dlerror()); return f; } const void *get_plugin_object(const struct plugin *pl, const char *symbol) { void *o; - const char *e; o = dlsym(pl->dlhandle, symbol); - if((e = dlerror())) - fatal(0, "error looking up object '%s' in '%s': %s", symbol, pl->name, e); + if(!o) + fatal(0, "error looking up object '%s' in '%s': %s", + symbol, pl->name, dlerror()); return o; } -- [mdw]