mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-19 11:19:31 +00:00
Free bus statements from the configuration file as soon as we are done
with them. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5645 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
16dbc995ec
commit
d5bead6025
2 files changed
+30
-18
No files matched your search
@@ -11,6 +11,7 @@ SVN-HEAD
|
||||
Fix memory leak in scanner when using flex 2.5.9 or later
|
||||
Report configuration file read errors
|
||||
Exit the configuration file parser sooner
|
||||
Free bus statements from the configuration file sooner
|
||||
lm_sensors.init: Support new format of /etc/sysconfig/lm_sensors (#2246)
|
||||
Drop support for kernels 2.4 and earlier
|
||||
lm_sensors.init.suse: Delete (actual SuSE script is much different)
|
||||
|
||||
+29
-18
@@ -61,18 +61,42 @@ static int sensors_parse(void)
|
||||
return res;
|
||||
}
|
||||
|
||||
static void free_bus(sensors_bus *bus)
|
||||
{
|
||||
free(bus->adapter);
|
||||
}
|
||||
|
||||
static void free_config_busses(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sensors_config_busses_count; i++)
|
||||
free_bus(&sensors_config_busses[i]);
|
||||
free(sensors_config_busses);
|
||||
sensors_config_busses = NULL;
|
||||
sensors_config_busses_count = sensors_config_busses_max = 0;
|
||||
}
|
||||
|
||||
static int parse_config(FILE *input)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (sensors_scanner_init(input))
|
||||
return -SENSORS_ERR_PARSE;
|
||||
if (sensors_scanner_init(input)) {
|
||||
err = -SENSORS_ERR_PARSE;
|
||||
goto exit_cleanup;
|
||||
}
|
||||
err = sensors_parse();
|
||||
sensors_scanner_exit();
|
||||
if (err)
|
||||
return -SENSORS_ERR_PARSE;
|
||||
if (err) {
|
||||
err = -SENSORS_ERR_PARSE;
|
||||
goto exit_cleanup;
|
||||
}
|
||||
|
||||
return 0;
|
||||
err = sensors_substitute_busses();
|
||||
|
||||
exit_cleanup:
|
||||
free_config_busses();
|
||||
return err;
|
||||
}
|
||||
|
||||
int sensors_init(FILE *input)
|
||||
@@ -107,8 +131,6 @@ int sensors_init(FILE *input)
|
||||
}
|
||||
}
|
||||
|
||||
if ((res = sensors_substitute_busses()))
|
||||
goto exit_cleanup;
|
||||
return 0;
|
||||
|
||||
exit_cleanup:
|
||||
@@ -134,11 +156,6 @@ static void free_chip_features(sensors_chip_features *features)
|
||||
free(features->feature);
|
||||
}
|
||||
|
||||
static void free_bus(sensors_bus *bus)
|
||||
{
|
||||
free(bus->adapter);
|
||||
}
|
||||
|
||||
static void free_label(sensors_label *label)
|
||||
{
|
||||
free(label->name);
|
||||
@@ -218,12 +235,6 @@ void sensors_cleanup(void)
|
||||
sensors_proc_chips = NULL;
|
||||
sensors_proc_chips_count = sensors_proc_chips_max = 0;
|
||||
|
||||
for (i = 0; i < sensors_config_busses_count; i++)
|
||||
free_bus(&sensors_config_busses[i]);
|
||||
free(sensors_config_busses);
|
||||
sensors_config_busses = NULL;
|
||||
sensors_config_busses_count = sensors_config_busses_max = 0;
|
||||
|
||||
for (i = 0; i < sensors_config_chips_count; i++)
|
||||
free_chip(&sensors_config_chips[i]);
|
||||
free(sensors_config_chips);
|
||||
|
||||
Reference in new issue
Block a user