Changeset 4760
- Timestamp:
- 09/05/07 10:19:42 (6 years ago)
- Location:
- lm-sensors/branches/lm-sensors-3.0.0/lib
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/branches/lm-sensors-3.0.0/lib/access.c
r4759 r4760 97 97 for (i = 0; i < sensors_proc_chips_count; i++) 98 98 if (sensors_match_chip(&sensors_proc_chips[i].chip, chip)) { 99 if (feature < 0 || 100 feature >= sensors_proc_chips[i].feature_count) 101 return NULL; 99 102 return sensors_proc_chips[i].feature + feature; 100 103 } … … 114 117 if (sensors_match_chip(&sensors_proc_chips[i].chip, chip)) { 115 118 features = sensors_proc_chips[i].feature; 116 for (j = 0; features[j].data.name; j++)119 for (j = 0; j < sensors_proc_chips[i].feature_count; j++) 117 120 if (!strcasecmp(features[j].data.name, feature)) 118 121 return features + j; … … 351 354 if (sensors_match_chip(&sensors_proc_chips[i].chip, name)) { 352 355 feature_list = sensors_proc_chips[i].feature; 353 while ( feature_list[*nr].data.name356 while (*nr < sensors_proc_chips[i].feature_count 354 357 && sensors_get_ignored(name, &feature_list[*nr])) 355 358 (*nr)++; 356 if ( !feature_list[*nr].data.name)359 if (*nr == sensors_proc_chips[i].feature_count) 357 360 return NULL; 358 361 return &feature_list[(*nr)++].data; -
lm-sensors/branches/lm-sensors-3.0.0/lib/data.h
r4758 r4760 144 144 struct sensors_chip_name chip; 145 145 struct sensors_chip_feature *feature; 146 int feature_count; 146 147 } sensors_chip_features; 147 148 -
lm-sensors/branches/lm-sensors-3.0.0/lib/init.c
r4737 r4760 52 52 } 53 53 54 static void free_chip_features(sensors_chip_feature *features)54 static void free_chip_features(sensors_chip_features *features) 55 55 { 56 56 int i; 57 57 58 for (i = 0; features[i].data.name; i++)59 free(features [i].data.name);60 free(features );58 for (i = 0; i < features->feature_count; i++) 59 free(features->feature[i].data.name); 60 free(features->feature); 61 61 } 62 62 … … 141 141 for (i = 0; i < sensors_proc_chips_count; i++) { 142 142 free_chip_name(&sensors_proc_chips[i].chip); 143 free_chip_features( sensors_proc_chips[i].feature);143 free_chip_features(&sensors_proc_chips[i]); 144 144 } 145 145 free(sensors_proc_chips); -
lm-sensors/branches/lm-sensors-3.0.0/lib/sysfs.c
r4759 r4760 65 65 struct sysfs_device *sysdir) 66 66 { 67 int i, type, fnum = 1;67 int i, type, fnum = 0; 68 68 struct sysfs_attribute *attr; 69 69 struct dlist *attrs; … … 161 161 } 162 162 163 if ( fnum == 1) { /* No feature */163 if (!fnum) { /* No feature */ 164 164 chip->feature = NULL; 165 165 goto exit_free; … … 195 195 196 196 chip->feature = dyn_features; 197 chip->feature_count = fnum; 197 198 198 199 exit_free:
