summaryrefslogtreecommitdiff
path: root/modules.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2008-03-29 12:15:13 +0100
committerMichael Biebl <biebl@debian.org>2008-03-29 12:15:13 +0100
commit9b68e0f3a37ec87dff0f24665a89cd36c8adcb72 (patch)
tree248494aafae9aa9cd54b0fd628fde0558dfb5f20 /modules.c
parent4f9e746bd83a363f2f66a1f31ed9fd92f614754e (diff)
downloadrsyslog-9b68e0f3a37ec87dff0f24665a89cd36c8adcb72.tar.gz
Imported Upstream version 2.0.3upstream/2.0.3
Diffstat (limited to 'modules.c')
-rw-r--r--modules.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/modules.c b/modules.c
index f04c4a9..406cf32 100644
--- a/modules.c
+++ b/modules.c
@@ -378,6 +378,18 @@ rsRetVal modUnloadAndDestructDynamic(void)
}
}
+ /* Note: the last modules pNext pointer is now invalid
+ * (except if the last module was not touched, what is highly
+ * unlikely. We simply fix this be setting it to NULL. After all,
+ * it is the last module ;). This bug had some severe effects in
+ * v3, but none in v2 because in v2 the list was never again
+ * traversed before a new one was added. But even in v2 it may cause
+ * a segfault if the number of loaded modules changed between HUPs.
+ * rgerhards, 2008-02-26
+ */
+ if(pLoadedModulesLast != NULL)
+ pLoadedModulesLast->pNext = NULL;
+
return iRet;
}
/*