|
commit 63f5dbf1b9fcdc5b10537d733b0e0798905ff1dc
|
|
Author: Dragan Dosen <ddosen@haproxy.com>
|
|
Date: Thu Mar 7 15:24:23 2019 +0100
|
|
|
|
BUG/MEDIUM: 51d: fix possible segfault on deinit_51degrees()
|
|
|
|
When haproxy is built with 51Degrees support, but not configured to use
|
|
51Degrees database, a segfault can occur when deinit_51degrees()
|
|
function is called, eg. during soft-stop on SIGUSR1 signal.
|
|
|
|
Only builds that use Pattern algorithm are affected.
|
|
|
|
This fix must be backported to all stable branches where 51Degrees
|
|
support is available. Additional adjustments are required for some
|
|
branches due to API and naming changes.
|
|
|
|
(cherry picked from commit bc6218e1b02860c6cdad0d2bb4dc8874557087f8)
|
|
Signed-off-by: William Lallemand <wlallemand@haproxy.org>
|
|
(cherry picked from commit 4e0363e84cb3f6ca341e1f83c6fd490c76c9ae6b)
|
|
Signed-off-by: William Lallemand <wlallemand@haproxy.org>
|
|
|
|
diff --git a/src/51d.c b/src/51d.c
|
|
index a36333ef..03101136 100644
|
|
--- a/src/51d.c
|
|
+++ b/src/51d.c
|
|
@@ -639,7 +639,8 @@ static void deinit_51degrees(void)
|
|
|
|
free(global_51degrees.header_names);
|
|
#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
|
|
- fiftyoneDegreesWorksetPoolFree(global_51degrees.pool);
|
|
+ if (global_51degrees.pool)
|
|
+ fiftyoneDegreesWorksetPoolFree(global_51degrees.pool);
|
|
#endif
|
|
#ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED
|
|
free(global_51degrees.device_offsets.firstOffset);
|