Merge pull request #275 from winks/patch-2

Fix NULL value on OpenBSD when there is no acpitz0
This commit is contained in:
Ingo Bürk 2018-04-08 15:53:19 +02:00 committed by GitHub
commit 82d25dc362
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -112,7 +112,7 @@ static int read_temperature(char *thermal_zone, temperature_t *temperature) {
/* 'path' is the node within the full path (defaults to acpitz0). */ /* 'path' is the node within the full path (defaults to acpitz0). */
if (BEGINS_WITH(sensordev.xname, thermal_zone)) { if (BEGINS_WITH(sensordev.xname, thermal_zone)) {
mib[3] = SENSOR_TEMP; mib[3] = SENSOR_TEMP;
/* Limit to temo0, but should retrieve from a full path... */ /* Limit to temp0, but should retrieve from a full path... */
for (numt = 0; numt < 1 /*sensordev.maxnumt[SENSOR_TEMP]*/; numt++) { for (numt = 0; numt < 1 /*sensordev.maxnumt[SENSOR_TEMP]*/; numt++) {
mib[4] = numt; mib[4] = numt;
if (sysctl(mib, 5, &sensor, &slen, NULL, 0) == -1) { if (sysctl(mib, 5, &sensor, &slen, NULL, 0) == -1) {
@ -205,7 +205,7 @@ error_netbsd1:
/* /*
* Reads the CPU temperature from /sys/class/thermal/thermal_zone%d/temp (or * Reads the CPU temperature from /sys/class/thermal/thermal_zone%d/temp (or
* the user provided path) and returns the temperature in degree celcius. * the user provided path) and returns the temperature in degree celsius.
* *
*/ */
void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const char *path, const char *format, const char *format_above_threshold, int max_threshold) { void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const char *path, const char *format, const char *format_above_threshold, int max_threshold) {
@ -216,6 +216,8 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const
bool colorful_output = false; bool colorful_output = false;
char *thermal_zone; char *thermal_zone;
temperature_t temperature; temperature_t temperature;
temperature.raw_value = 0;
sprintf(temperature.formatted_value, "%.2f", 0.0);
if (path == NULL) if (path == NULL)
asprintf(&thermal_zone, THERMAL_ZONE, zone); asprintf(&thermal_zone, THERMAL_ZONE, zone);