From b00cf838bb11fdff8a55c67f07e1045350ec8981 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 26 Feb 2008 13:43:13 +0000 Subject: - bugfix: resolved potential segfault condition on HUP (extremely unlikely to happen in practice), for details see tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=38 --- modules.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'modules.c') diff --git a/modules.c b/modules.c index f04c4a97..406cf32a 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; } /* -- cgit v1.2.3