- /* remove prepended 'SYSFS_' */
- strfieldcpy(dev.sysfs_file, temp2 + sizeof(FIELD_SYSFS)-1);
- strfieldcpy(dev.sysfs_value, temp3);
+ struct sysfs_pair *pair = &dev.sysfs_pair[0];
+ int sysfs_pair_num = 0;
+
+ /* find first unused pair */
+ while (pair->file[0] != '\0') {
+ ++sysfs_pair_num;
+ if (sysfs_pair_num >= MAX_SYSFS_PAIRS) {
+ pair = NULL;
+ break;
+ }
+ ++pair;
+ }
+ if (pair) {
+ /* remove prepended 'SYSFS_' */
+ strfieldcpy(pair->file, temp2 + sizeof(FIELD_SYSFS)-1);
+ strfieldcpy(pair->value, temp3);
+ }