summaryrefslogtreecommitdiff
path: root/lib/sysfs.c
diff options
context:
space:
mode:
authorkhali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0>2009-02-20 10:56:52 +0000
committerkhali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0>2009-02-20 10:56:52 +0000
commit183fab72eed592b014b8f07de7af714ff0818a82 (patch)
tree51ca36ba7d4469c1fd27c6f4f9b855ba7d602d6d /lib/sysfs.c
parent6955f2663024e23daa6aee8ae4fdcec03523eab2 (diff)
downloadlm-sensors-183fab72eed592b014b8f07de7af714ff0818a82.tar.gz
If str(n)dup fails, there is no more memory left. We should exit with
"Out of memory". Patch from Andre Prendel. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5661 7894878c-1315-0410-8ee3-d5d059ff63e0
Diffstat (limited to 'lib/sysfs.c')
-rw-r--r--lib/sysfs.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/sysfs.c b/lib/sysfs.c
index 4c383eb5..0dd0afcc 100644
--- a/lib/sysfs.c
+++ b/lib/sysfs.c
@@ -188,9 +188,14 @@ char *get_feature_name(sensors_feature_type ftype, char *sfname)
case SENSORS_FEATURE_CURR:
underscore = strchr(sfname, '_');
name = strndup(sfname, underscore - sfname);
+ if (!name)
+ sensors_fatal_error(__func__, "Out of memory");
+
break;
default:
name = strdup(sfname);
+ if (!name)
+ sensors_fatal_error(__func__, "Out of memory");
}
return name;
@@ -419,6 +424,9 @@ static int sensors_read_dynamic_chip(sensors_chip_features *chip,
/* fill in the subfeature members */
all_subfeatures[i].type = sftype;
all_subfeatures[i].name = strdup(name);
+ if (!all_subfeatures[i].name)
+ sensors_fatal_error(__func__, "Out of memory");
+
if (!(sftype & 0x80))
all_subfeatures[i].flags |= SENSORS_COMPUTE_MAPPING;
all_subfeatures[i].flags |= sensors_get_attr_mode(dev_path, name);