Coverity models strerror() as a function which cannot accept negative
values, even though it has defined behavior on all integers.
k5_get_error() contains code to call strerror_r() and strerror() if
its fptr global is unset, which isn't an expected case in practice.
To silence a large number of Coverity false positives, just return a
fixed string if fptr is null.
lock();
if (fptr == NULL) {
+ /* Should be rare; fptr should be set whenever libkrb5 is loaded. */
unlock();
- if (strerror_r(code, buf, sizeof(buf)) == 0)
- return oom_check(strdup(buf));
- return oom_check(strdup(strerror(code)));
+ return oom_check(strdup(_("Error code translation unavailable")));
}
r = fptr(code);
#ifndef HAVE_COM_ERR_INTL