diff --git a/src/base/reg.c b/src/base/reg.c index 7ccdccbf82a839bd7d66e6a410a85e410fa0796b..d02577c4306ed3c7b8158b67138627ac710ccfec 100644 --- a/src/base/reg.c +++ b/src/base/reg.c @@ -22,8 +22,7 @@ reg_global(struct module_reg **reg_ptr) PRIVATE_FUNCTION void * __reg_get(struct module_reg *reg, const char *name) { - int i; - for (i = 0; (reg + i)->name && (reg + i)->obj; ++i) { + for (int i = 0; (reg + i) && (reg + i)->name && (reg + i)->obj; ++i) { if (STR_MATCH((reg + i)->name, name)) return (reg + i)->obj; } @@ -33,8 +32,7 @@ __reg_get(struct module_reg *reg, const char *name) PRIVATE_FUNCTION reg_func __reg_func(struct module_reg *reg, const char *name) { - int i; - for (i = 0; (reg + i)->name && (reg + i)->func; ++i) { + for (int i = 0; (reg + i) && (reg + i)->name && (reg + i)->func; ++i) { if (STR_MATCH((reg + i)->name, name)) return (reg + i)->func; } @@ -44,8 +42,9 @@ __reg_func(struct module_reg *reg, const char *name) PRIVATE_FUNCTION void * __from_file(const char *file, void **handle, const char *symbol) { - char *error; - *handle = dlopen(file, RTLD_NOW); + void *sym = NULL; + char *error = NULL; + *handle = dlopen(file, RTLD_NOW); if (NULL == *handle) { LOG_ERROR("REG", "libdl error in dlopen on file '%s': %s", file, dlerror()); @@ -53,9 +52,10 @@ __from_file(const char *file, void **handle, const char *symbol) } dlerror(); - void *sym = dlsym(*handle, symbol); + sym = dlsym(*handle, symbol); + error = dlerror(); - if ((error = dlerror()) != NULL) { + if (error != NULL) { LOG_ERROR("REG", "libdl error in dlsym on file '%s': %s\n", file, error); return NULL; }