make it take size after all
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#ifndef UTILS_H
|
||||
#define UTILS_H
|
||||
#ifndef LINUXSMARTIE_UTILS_H
|
||||
#define LINUXSMARTIE_UTILS_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <time.h>
|
||||
@@ -31,7 +31,7 @@ char *pretty_bytes(uint64_t bytes, int8_t start_suffix, char *buf, size_t bufsz)
|
||||
|
||||
bool file_exists(const char *path);
|
||||
|
||||
int get_hwmon_dir(char *path);
|
||||
int get_hwmon_dir(char *path, size_t bufsz);
|
||||
|
||||
size_t read_file(const char *path, char *buffer, size_t n);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ void cpu_detect(struct cpu_sensors_t *t, const char *pci_dev) {
|
||||
t->num_cores = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
|
||||
snprintf(t->hwmon, sizeof(t->hwmon), "/sys/bus/pci/devices/%s/hwmon", pci_dev);
|
||||
const int ret = get_hwmon_dir(t->hwmon);
|
||||
const int ret = get_hwmon_dir(t->hwmon, sizeof(t->hwmon));
|
||||
if (ret != 0) {
|
||||
t->hwmon[0] = '\0';
|
||||
applog(LOG_WRN, "Detected %d cores, module enum #%d. Can't get hwmon path, skipping", t->num_cores, t->module);
|
||||
|
||||
@@ -12,7 +12,7 @@ const uint16_t max_metrics_length = 512; // length of the metrics buffer
|
||||
|
||||
void gpu_detect(struct gpu_sensors_t *t, const char *pci) {
|
||||
snprintf(t->hwmon, sizeof(t->hwmon), "/sys/bus/pci/devices/%s/hwmon", pci);
|
||||
const int ret = get_hwmon_dir(t->hwmon);
|
||||
const int ret = get_hwmon_dir(t->hwmon, sizeof(t->hwmon));
|
||||
if (ret != 0) {
|
||||
t->hwmon[0] = '\0';
|
||||
applog(LOG_WRN, "Detected GPU hwmon");
|
||||
|
||||
@@ -71,7 +71,7 @@ void sys_get_network(struct network_t *network) {
|
||||
|
||||
void sys_detect(struct syssensors_t *s, const char *platform) {
|
||||
snprintf(s->hwmon, sizeof(s->hwmon), "/sys/devices/platform/%s/hwmon", platform);
|
||||
const int ret = get_hwmon_dir(s->hwmon);
|
||||
const int ret = get_hwmon_dir(s->hwmon, sizeof(s->hwmon));
|
||||
if (ret != 0) {
|
||||
s->hwmon[0] = '\0';
|
||||
applog(LOG_WRN, "Can't open system hwmon. Kernel params added? Module loaded? See README");
|
||||
|
||||
@@ -55,12 +55,12 @@ inline bool file_exists(const char *path) {
|
||||
}
|
||||
|
||||
/* path has to have at least 8 free chars at the end for glob */
|
||||
int get_hwmon_dir(char *path) {
|
||||
int get_hwmon_dir(char *path, const size_t bufsz) {
|
||||
glob_t g;
|
||||
strncat(path, "/hwmon*", 10);
|
||||
|
||||
if (glob(path, 0, NULL, &g) == 0) {
|
||||
strncpy(path, g.gl_pathv[0], 128); // bug prone, careful
|
||||
strncpy(path, g.gl_pathv[0], bufsz); // same size as hwmon length, careful
|
||||
globfree(&g);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user