From: Florian Forster Date: Thu, 6 Sep 2012 14:12:53 +0000 (+0200) Subject: src/common.c: get_kstat_value: Check the arguments and return error codes. X-Git-Tag: collectd-5.0.5~4^2~18^2~1 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=619eaff863528b2f97dc79371dddf46a69c7115d;p=collectd.git src/common.c: get_kstat_value: Check the arguments and return error codes. Rather than asserting that an argument is not NULL, check this condition and return an error code. This should fix Github issue #71. --- diff --git a/src/common.c b/src/common.c index 3bab7a59..f201b407 100644 --- a/src/common.c +++ b/src/common.c @@ -635,24 +635,23 @@ long long get_kstat_value (kstat_t *ksp, char *name) kstat_named_t *kn; long long retval = -1LL; -#ifdef assert - assert (ksp != NULL); - assert (ksp->ks_type == KSTAT_TYPE_NAMED); -#else if (ksp == NULL) { - ERROR ("ERROR: %s:%i: ksp == NULL\n", __FILE__, __LINE__); + ERROR ("get_kstat_value (\"%s\"): ksp is NULL.", name) return (-1LL); } else if (ksp->ks_type != KSTAT_TYPE_NAMED) { - ERROR ("ERROR: %s:%i: ksp->ks_type != KSTAT_TYPE_NAMED\n", __FILE__, __LINE__); + ERROR ("get_kstat_value (\"%s\"): ksp->ks_type (%#x) " + "is not KSTAT_TYPE_NAMED (%#x).", + name, + (unsigned int) ksp->ks_type, + (unsigned int) KSTAT_TYPE_NAMED); return (-1LL); } -#endif if ((kn = (kstat_named_t *) kstat_data_lookup (ksp, name)) == NULL) - return (retval); + return (-1LL); if (kn->data_type == KSTAT_DATA_INT32) retval = (long long) kn->value.i32;