diff options
author | khali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0> | 2009-02-20 10:56:52 +0000 |
---|---|---|
committer | khali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0> | 2009-02-20 10:56:52 +0000 |
commit | 183fab72eed592b014b8f07de7af714ff0818a82 (patch) | |
tree | 51ca36ba7d4469c1fd27c6f4f9b855ba7d602d6d /lib/sysfs.c | |
parent | 6955f2663024e23daa6aee8ae4fdcec03523eab2 (diff) | |
download | lm-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.c | 8 |
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); |