diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/devices/dmi_memory.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/modules/devices/dmi_memory.c b/modules/devices/dmi_memory.c index 42672bac..0aca6b6e 100644 --- a/modules/devices/dmi_memory.c +++ b/modules/devices/dmi_memory.c @@ -63,7 +63,7 @@ const char *problem_marker() { dmi_mem_size dmi_read_memory_str_to_MiB(const char *memstr) { dmi_mem_size ret = 0, v = 0; - char l[6] = ""; + char l[7] = ""; /* dmidecode units: "bytes", "kB", "MB", "GB", "TB", "PB", "EB", "ZB" */ int mc = sscanf(memstr, "%"PRId64" %6s", &v, l); if (mc == 2) { @@ -120,8 +120,10 @@ dmi_mem_array *dmi_mem_array_new(dmi_handle h) { g_free(array_max_size); } gchar *array_devs = dmidecode_match("Number Of Devices", &dta, &h); - s->devs = strtol(array_devs, NULL, 10); - g_free(array_devs); + if (array_devs) { + s->devs = strtol(array_devs, NULL, 10); + g_free(array_devs); + } return s; } |