summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 78a1662)
raw | patch | inline | side by side (parent: 78a1662)
author | plazmus <pseudo@egg6.net> | |
Thu, 31 Dec 2009 09:00:25 +0000 (10:00 +0100) | ||
committer | Florian Forster <octo@huhu.verplant.org> | |
Thu, 31 Dec 2009 09:05:43 +0000 (10:05 +0100) |
Hello,
Today I upgraded a machine from 4.5.2 to 4.9.0. Everything went fine, but
the new version segfaults immediately at startup. With some help from gdb
I tracked down the problem to the apache module. It will occur if one
tries to use the VerifyPeer/VerifyHost options (I guess few people use
these as I don't see complaints?)
When the plugin attempts to read the value of a boolean option, instead of
using the pre-parsed int value, it misdetects the type of the option
(seems a mechanical mistake) and tries to use the string pointer, which is
actually NULL.
I'm sending a patch, it's actually shorter than the description ;)
Thanks to all developers and maintainers of collectd for working on it.
Have a nice holidays.
Today I upgraded a machine from 4.5.2 to 4.9.0. Everything went fine, but
the new version segfaults immediately at startup. With some help from gdb
I tracked down the problem to the apache module. It will occur if one
tries to use the VerifyPeer/VerifyHost options (I guess few people use
these as I don't see complaints?)
When the plugin attempts to read the value of a boolean option, instead of
using the pre-parsed int value, it misdetects the type of the option
(seems a mechanical mistake) and tries to use the string pointer, which is
actually NULL.
I'm sending a patch, it's actually shorter than the description ;)
Thanks to all developers and maintainers of collectd for working on it.
Have a nice holidays.
src/apache.c | patch | blob | history |
diff --git a/src/apache.c b/src/apache.c
index df1b560f092e89bbc8dd9cb65309fb55b20216f5..d6712dcb7885748be6725dcbe8793873ecd0e8b2 100644 (file)
--- a/src/apache.c
+++ b/src/apache.c
return (-1);
}
- if (ci->values[0].type != OCONFIG_TYPE_BOOLEAN)
+ if (ci->values[0].type == OCONFIG_TYPE_BOOLEAN)
{
if (ci->values[0].value.boolean)
*ret_boolean = 1;