Hi Andre, On Tue, 3 Nov 2009 21:03:43 +0100, Andre Prendel wrote: > Evaluate return value of idChip(). > > Some of the functions called from idChip() can fail which means > idChip() can return an error. Callers of idChip() should be aware of > this. > --- > prog/sensord/sense.c | 24 +++++++++++++++++++----- > 1 file changed, 19 insertions(+), 5 deletions(-) > > Index: sensors/prog/sensord/sense.c > =================================================================== > --- sensors.orig/prog/sensord/sense.c 2009-11-03 20:20:10.000000000 +0100 > +++ sensors/prog/sensord/sense.c 2009-11-03 20:28:44.000000000 +0100 > @@ -45,12 +45,23 @@ > > static int idChip(const sensors_chip_name *chip) > { > - const char *adapter; > + const char *name, *adapter; > + > + name = chipName(chip); > + if (!name) { > + sensorLog(LOG_ERR, "Error getting chip name"); > + return -1; > + } > + > + sensorLog(LOG_INFO, "Chip: %s", name); > > - sensorLog(LOG_INFO, "Chip: %s", chipName(chip)); > adapter = sensors_get_adapter_name(&chip->bus); > - if (adapter) > - sensorLog(LOG_INFO, "Adapter: %s", adapter); > + if (!adapter) { > + sensorLog(LOG_ERR, "Error getting adapter name"); > + return -1; > + } > + > + sensorLog(LOG_INFO, "Adapter: %s", adapter); I seem to remember that we made missing adapter name a non-fatal error on purpose. It has happened in the past (when sysfs layout changed, for example) and it did not seem worth causing sensord to fail, as this is not a key information. So I'd revert this change. > > return 0; > } > @@ -151,8 +162,11 @@ > const FeatureDescriptor *features = descriptor->features; > int i, ret = 0; > > - if (action == DO_READ) > + if (action == DO_READ) { > ret = idChip(chip); > + if (ret) > + return ret; > + } > > for (i = 0; features[i].format; i++) { > ret = do_features(chip, features + i, action); -- Jean Delvare _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors