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;
     }