X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsensors.c;h=209482e09f88e37a536641bda22d71e2d71810b4;hb=d21cf7f8376b6ce5dd3bbeb41da3aff0e85c6e28;hp=96a54fca91cb56bc9bb825f93a749b291c2c71c7;hpb=475906f5a5769b176aa7c1ad2ca06b58da95583c;p=collectd.git diff --git a/src/sensors.c b/src/sensors.c index 96a54fca..209482e0 100644 --- a/src/sensors.c +++ b/src/sensors.c @@ -153,7 +153,7 @@ typedef struct featurelist # ifndef SENSORS_CONF_PATH # define SENSORS_CONF_PATH "/etc/sensors.conf" # endif -static const char *conffile = SENSORS_CONF_PATH; +static char *conffile = SENSORS_CONF_PATH; /* #endif SENSORS_API_VERSION < 0x400 */ #elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) @@ -165,7 +165,7 @@ typedef struct featurelist struct featurelist *next; } featurelist_t; -static const char *conffile = NULL; +static char *conffile = NULL; /* #endif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */ #else /* if SENSORS_API_VERSION >= 0x500 */ @@ -227,12 +227,17 @@ static int sensors_config (const char *key, const char *value) if (sensor_list == NULL) sensor_list = ignorelist_create (1); + /* TODO: This setting exists for compatibility with old versions of + * lm-sensors. Remove support for those ancient versions in the next + * major release. */ if (strcasecmp (key, "SensorConfigFile") == 0) { - /* we will leak memory here if SensorConfigFile is - used more than once, maybe we can just drop support - for broken, extremely ancient libsensors? */ - conffile = strdup (value); + char *tmp = strdup (value); + if (tmp != NULL) + { + sfree (conffile); + conffile = tmp; + } } else if (strcasecmp (key, "Sensor") == 0) { @@ -292,7 +297,7 @@ static int sensors_load_conf (void) call_once = 1; - if (conffile) + if (conffile != NULL) { fh = fopen (conffile, "r"); if (fh == NULL)