multipath-tools (coverity): assert availability of CLOCK_MONOTONIC
authorMartin Wilck <Martin.Wilck@suse.com>
Tue, 9 Jul 2019 07:40:03 +0000 (07:40 +0000)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Tue, 1 Oct 2019 20:23:17 +0000 (22:23 +0200)
commit3b5d36ed114aaa976ba2928c818a3e617cf122c9
tree98c6ea52eb406a2d2fa94e19e7908155ca6b9c81
parent2aea4ce1f1b83c3b1d214ffc6cdc36781e0e1023
multipath-tools (coverity): assert availability of CLOCK_MONOTONIC

clock_gettime() fails only if either an invalid pointer is passed,
or if the requested clock ID is not available. While availability of
CLOCK_REALTIME is guaranteed, CLOCK_MONOTONIC is not, at least not
by POSIX (Linux seems to have it, always). Provide a wrapper that
can be called without error checking, and which aborts in the highly
unlikely case that the monotonic clock can't be obtained. That saves
us from checking the error code of clock_gettime() at every invocation
(handling this sort of error "correctly" is almost impossible anyway),
and should still satisfy coverity.

Not doing this for libdmmp here, as it has it's own error checking
and doesn't use headers from libmultipath.

----
v2: Fix mistake that with -DNDEBUG, clock_gettime wouldn't be called
at all (Bart van Assche).

Signed-off-by: Martin Wilck <mwilck@suse.com>
libmultipath/checkers/tur.c
libmultipath/time-util.c
libmultipath/time-util.h
multipathd/main.c
multipathd/uxlsnr.c