summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2012-10-20 16:52:29 -0400
committerGreg Hudson <ghudson@mit.edu>2012-12-19 12:15:46 -0500
commitd9abacfd82b3336d133d12ed117173a1b6c0ba54 (patch)
tree6272f93d8f97ae2c3726a6854777fc4fa357c5ab /src/util
parent296c51d3208ddc37b64f5a0b06812e2705995c4b (diff)
downloadkrb5-d9abacfd82b3336d133d12ed117173a1b6c0ba54.tar.gz
krb5-d9abacfd82b3336d133d12ed117173a1b6c0ba54.tar.xz
krb5-d9abacfd82b3336d133d12ed117173a1b6c0ba54.zip
Style cleanup for internal error handling
Fix style issues in kerrs.c and errors.c. Rename error handling functions to use shorter k5_ prefix. Eliminate an inoperable krb5int_set_error() call in gic_opte_alloc and convert the other call to use krb5_set_error_message().
Diffstat (limited to 'src/util')
-rw-r--r--src/util/profile/prof_init.c2
-rw-r--r--src/util/support/errors.c128
-rw-r--r--src/util/support/libkrb5support-fixed.exports16
-rw-r--r--src/util/support/plugins.c16
4 files changed, 84 insertions, 78 deletions
diff --git a/src/util/profile/prof_init.c b/src/util/profile/prof_init.c
index 7dc5b470d6..5b2bb22261 100644
--- a/src/util/profile/prof_init.c
+++ b/src/util/profile/prof_init.c
@@ -156,7 +156,7 @@ init_load_module(const char *modspec, profile_t *ret_profile)
cleanup:
free(modpath);
free(residual);
- krb5int_clear_error(&einfo);
+ k5_clear_error(&einfo);
if (err) {
if (have_cbdata && vtable.cleanup)
vtable.cleanup(cbdata);
diff --git a/src/util/support/errors.c b/src/util/support/errors.c
index 5dba532b5b..9b626c29c3 100644
--- a/src/util/support/errors.c
+++ b/src/util/support/errors.c
@@ -1,7 +1,9 @@
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* Can't include krb5.h here, or k5-int.h which includes it, because
- krb5.h needs to be generated with error tables, after util/et,
- which builds after this directory. */
+/*
+ * Can't include krb5.h here, or k5-int.h which includes it, because krb5.h
+ * needs to be generated with error tables, after util/et, which builds after
+ * this directory.
+ */
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
@@ -12,12 +14,16 @@
#include "k5-platform.h"
#include "supp-int.h"
-/* It would be nice to just use error_message() always. Pity that
- it's defined in a library that depends on this one, and we're not
- allowed to make circular dependencies. */
-/* We really want a rwlock here, since we should hold it while calling
- the function and copying out its results. But I haven't
- implemented shims for rwlock yet. */
+/*
+ * It would be nice to just use error_message() always. Pity that it's defined
+ * in a library that depends on this one, and we're not allowed to make
+ * circular dependencies.
+ */
+/*
+ * We really want a rwlock here, since we should hold it while calling the
+ * function and copying out its results. But I haven't implemented shims for
+ * rwlock yet.
+ */
static k5_mutex_t krb5int_error_info_support_mutex =
K5_MUTEX_PARTIAL_INITIALIZER;
static const char *(KRB5_CALLCONV *fptr)(long); /* = &error_message */
@@ -25,55 +31,54 @@ static const char *(KRB5_CALLCONV *fptr)(long); /* = &error_message */
int
krb5int_err_init (void)
{
- return k5_mutex_finish_init (&krb5int_error_info_support_mutex);
+ return k5_mutex_finish_init(&krb5int_error_info_support_mutex);
}
#define initialize() krb5int_call_thread_support_init()
#define lock() k5_mutex_lock(&krb5int_error_info_support_mutex)
#define unlock() k5_mutex_unlock(&krb5int_error_info_support_mutex)
-#undef krb5int_set_error
+#undef k5_set_error
void
-krb5int_set_error (struct errinfo *ep, long code, const char *fmt, ...)
+k5_set_error(struct errinfo *ep, long code, const char *fmt, ...)
{
va_list args;
- va_start (args, fmt);
- krb5int_vset_error_fl (ep, code, NULL, 0, fmt, args);
- va_end (args);
+
+ va_start(args, fmt);
+ k5_vset_error_fl(ep, code, NULL, 0, fmt, args);
+ va_end(args);
}
void
-krb5int_set_error_fl (struct errinfo *ep, long code,
- const char *file, int line, const char *fmt, ...)
+k5_set_error_fl(struct errinfo *ep, long code, const char *file, int line,
+ const char *fmt, ...)
{
va_list args;
- va_start (args, fmt);
- krb5int_vset_error_fl (ep, code, file, line, fmt, args);
- va_end (args);
+
+ va_start(args, fmt);
+ k5_vset_error_fl(ep, code, file, line, fmt, args);
+ va_end(args);
}
void
-krb5int_vset_error (struct errinfo *ep, long code,
- const char *fmt, va_list args)
+k5_vset_error(struct errinfo *ep, long code, const char *fmt, va_list args)
{
- krb5int_vset_error_fl(ep, code, NULL, 0, fmt, args);
+ k5_vset_error_fl(ep, code, NULL, 0, fmt, args);
}
void
-krb5int_vset_error_fl (struct errinfo *ep, long code,
- const char *file, int line,
- const char *fmt, va_list args)
+k5_vset_error_fl(struct errinfo *ep, long code, const char *file, int line,
+ const char *fmt, va_list args)
{
va_list args2;
char *str = NULL, *str2, *slash;
- /* try vasprintf first */
+ /* Try vasprintf first. */
va_copy(args2, args);
- if (vasprintf(&str, fmt, args2) < 0) {
+ if (vasprintf(&str, fmt, args2) < 0)
str = NULL;
- }
va_end(args2);
- if (str && line) {
+ if (str != NULL && line) {
/* Try to add file and line suffix. */
slash = strrchr(file, '/');
if (slash)
@@ -84,26 +89,25 @@ krb5int_vset_error_fl (struct errinfo *ep, long code,
}
}
- /* If that failed, try using scratch_buf */
+ /* If vasprintf failed, try using scratch_buf. */
if (str == NULL) {
vsnprintf(ep->scratch_buf, sizeof(ep->scratch_buf), fmt, args);
str = strdup(ep->scratch_buf); /* try allocating again */
}
- /* free old string before setting new one */
- if (ep->msg && ep->msg != ep->scratch_buf) {
- krb5int_free_error (ep, ep->msg);
- ep->msg = NULL;
- }
+ /* Free old string before setting new one. */
+ k5_clear_error(ep);
ep->code = code;
- ep->msg = str ? str : ep->scratch_buf;
+ ep->msg = (str != NULL) ? str : ep->scratch_buf;
}
const char *
-krb5int_get_error (struct errinfo *ep, long code)
+k5_get_error(struct errinfo *ep, long code)
{
const char *r, *r2;
- if (code == ep->code && ep->msg) {
+ char *p;
+
+ if (code == ep->code && ep->msg != NULL) {
r = strdup(ep->msg);
if (r == NULL) {
strlcpy(ep->scratch_buf, _("Out of memory"),
@@ -124,36 +128,38 @@ krb5int_get_error (struct errinfo *ep, long code)
if (fptr == NULL) {
unlock();
no_fptr:
- /* Theoretically, according to ISO C, strerror should be able
- to give us a message back for any int value. However, on
- UNIX at least, the errno codes strerror will actually be
- useful for are positive, so a negative value here would be
- kind of weird.
-
- Coverity Prevent thinks we shouldn't be passing negative
- values to strerror, and it's not likely to be useful, so
- let's not do it.
-
- Besides, normally we shouldn't get here; fptr should take
- us to a callback function in the com_err library. */
+ /*
+ * Theoretically, according to ISO C, strerror should be able
+ * to give us a message back for any int value. However, on
+ * UNIX at least, the errno codes strerror will actually be
+ * useful for are positive, so a negative value here would be
+ * kind of weird.
+ *
+ * Coverity Prevent thinks we shouldn't be passing negative
+ * values to strerror, and it's not likely to be useful, so
+ * let's not do it.
+ *
+ * Besides, normally we shouldn't get here; fptr should take
+ * us to a callback function in the com_err library.
+ */
if (code < 0)
goto format_number;
#ifdef HAVE_STRERROR_R
if (strerror_r(code, ep->scratch_buf, sizeof(ep->scratch_buf)) == 0) {
- char *p = strdup(ep->scratch_buf);
- if (p)
+ p = strdup(ep->scratch_buf);
+ if (p != NULL)
return p;
return ep->scratch_buf;
}
#endif
r = strerror(code);
- if (r) {
+ if (r != NULL) {
strlcpy(ep->scratch_buf, r, sizeof(ep->scratch_buf));
return ep->scratch_buf;
}
format_number:
- snprintf (ep->scratch_buf, sizeof(ep->scratch_buf),
- _("error %ld"), code);
+ snprintf(ep->scratch_buf, sizeof(ep->scratch_buf), _("error %ld"),
+ code);
return ep->scratch_buf;
}
r = fptr(code);
@@ -178,21 +184,21 @@ krb5int_get_error (struct errinfo *ep, long code)
}
void
-krb5int_free_error (struct errinfo *ep, const char *msg)
+k5_free_error(struct errinfo *ep, const char *msg)
{
if (msg != ep->scratch_buf)
- free ((char *) msg);
+ free((char *)msg);
}
void
-krb5int_clear_error (struct errinfo *ep)
+k5_clear_error(struct errinfo *ep)
{
- krb5int_free_error (ep, ep->msg);
+ k5_free_error(ep, ep->msg);
ep->msg = NULL;
}
void
-krb5int_set_error_info_callout_fn (const char *(KRB5_CALLCONV *f)(long))
+k5_set_error_info_callout_fn(const char *(KRB5_CALLCONV *f)(long))
{
initialize();
if (lock() == 0) {
diff --git a/src/util/support/libkrb5support-fixed.exports b/src/util/support/libkrb5support-fixed.exports
index 0579611fda..c813310885 100644
--- a/src/util/support/libkrb5support-fixed.exports
+++ b/src/util/support/libkrb5support-fixed.exports
@@ -1,3 +1,11 @@
+k5_set_error
+k5_vset_error
+k5_set_error_fl
+k5_vset_error_fl
+k5_get_error
+k5_free_error
+k5_clear_error
+k5_set_error_info_callout_fn
k5_json_array_add
k5_json_array_create
k5_json_array_get
@@ -50,14 +58,6 @@ krb5int_mutex_alloc
krb5int_mutex_free
krb5int_mutex_lock
krb5int_mutex_unlock
-krb5int_set_error
-krb5int_vset_error
-krb5int_set_error_fl
-krb5int_vset_error_fl
-krb5int_get_error
-krb5int_free_error
-krb5int_clear_error
-krb5int_set_error_info_callout_fn
krb5int_gmt_mktime
krb5int_buf_init_fixed
krb5int_buf_init_dynamic
diff --git a/src/util/support/plugins.c b/src/util/support/plugins.c
index 02e37ee92f..608d03c2f1 100644
--- a/src/util/support/plugins.c
+++ b/src/util/support/plugins.c
@@ -174,8 +174,8 @@ krb5int_open_plugin (const char *filepath, struct plugin_file_handle **h, struct
if (stat (filepath, &statbuf) < 0) {
err = errno;
Tprintf ("stat(%s): %s\n", filepath, strerror (err));
- krb5int_set_error(ep, err, _("unable to find plugin [%s]: %s"),
- filepath, strerror(err));
+ k5_set_error(ep, err, _("unable to find plugin [%s]: %s"),
+ filepath, strerror(err));
}
}
@@ -270,8 +270,8 @@ krb5int_open_plugin (const char *filepath, struct plugin_file_handle **h, struct
e = _("unknown failure");
Tprintf ("dlopen(%s): %s\n", filepath, e);
err = ENOENT; /* XXX */
- krb5int_set_error(ep, err, _("unable to load plugin [%s]: %s"),
- filepath, e);
+ k5_set_error(ep, err, _("unable to load plugin [%s]: %s"),
+ filepath, e);
}
}
@@ -293,7 +293,7 @@ krb5int_open_plugin (const char *filepath, struct plugin_file_handle **h, struct
if (handle == NULL) {
Tprintf ("Unable to load dll: %s\n", filepath);
err = ENOENT; /* XXX */
- krb5int_set_error(ep, err, _("unable to load DLL [%s]"), filepath);
+ k5_set_error(ep, err, _("unable to load DLL [%s]"), filepath);
}
if (!err) {
@@ -309,7 +309,7 @@ krb5int_open_plugin (const char *filepath, struct plugin_file_handle **h, struct
if (!err && !got_plugin) {
err = ENOENT; /* no plugin or no way to load plugins */
- krb5int_set_error(ep, err, _("plugin unavailable: %s"), strerror(err));
+ k5_set_error(ep, err, _("plugin unavailable: %s"), strerror(err));
}
if (!err) {
@@ -341,7 +341,7 @@ krb5int_get_plugin_sym (struct plugin_file_handle *h,
e = "unknown failure";
Tprintf ("dlsym(%s): %s\n", csymname, e);
err = ENOENT; /* XXX */
- krb5int_set_error(ep, err, "%s", e);
+ k5_set_error(ep, err, "%s", e);
}
}
#endif
@@ -356,7 +356,7 @@ krb5int_get_plugin_sym (struct plugin_file_handle *h,
const char *e = "unable to get dll symbol"; /* XXX copy and save away */
Tprintf ("GetProcAddress(%s): %i\n", csymname, GetLastError());
err = ENOENT; /* XXX */
- krb5int_set_error(ep, err, "%s", e);
+ k5_set_error(ep, err, "%s", e);
dw = GetLastError();
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |