krb5 commit: Remove strerror() calls from k5_get_error()

Greg Hudson ghudson at mit.edu
Mon Jun 10 11:32:28 EDT 2019


https://github.com/krb5/krb5/commit/2d400bea7a81a5a834a1be6ded439f18e0afa5ba
commit 2d400bea7a81a5a834a1be6ded439f18e0afa5ba
Author: Greg Hudson <ghudson at mit.edu>
Date:   Thu Jun 6 11:46:58 2019 -0400

    Remove strerror() calls from k5_get_error()
    
    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.

 src/util/support/errors.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/util/support/errors.c b/src/util/support/errors.c
index 70e1d59..f8bea07 100644
--- a/src/util/support/errors.c
+++ b/src/util/support/errors.c
@@ -78,10 +78,9 @@ k5_get_error(struct errinfo *ep, long code)
 
     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


More information about the cvs-krb5 mailing list