From 221cd4a23691601a14500bc00146c265b50bdc94 Mon Sep 17 00:00:00 2001 From: Greg Hudson Date: Fri, 9 Mar 2012 18:30:31 +0000 Subject: [PATCH] Avoid side effects in assert expressions asserts may be compiled out with -DNDEBUG, so it's wrong to use an assert expression with an important side effect. (We also have scores of side-effecting asserts in test programs, but those are less important and can be dealt with separately.) ticket: 7105 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25760 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/apputils/net-server.c | 5 ++++- src/lib/crypto/krb/cf2.c | 3 ++- src/util/et/com_err.c | 12 ++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/lib/apputils/net-server.c b/src/lib/apputils/net-server.c index fcc660d35..8b4af1429 100644 --- a/src/lib/apputils/net-server.c +++ b/src/lib/apputils/net-server.c @@ -1066,7 +1066,10 @@ static void do_network_reconfig(verto_ctx *ctx, verto_ev *ev) { struct connection *conn = verto_get_private(ev); - assert(loop_setup_network(ctx, conn->handle, conn->prog) == 0); + if (loop_setup_network(ctx, conn->handle, conn->prog) != 0) { + krb5_klog_syslog(LOG_ERR, _("Failed to reconfigure network, exiting")); + verto_break(ctx); + } } static int diff --git a/src/lib/crypto/krb/cf2.c b/src/lib/crypto/krb/cf2.c index 5f82d62af..7334ed168 100644 --- a/src/lib/crypto/krb/cf2.c +++ b/src/lib/crypto/krb/cf2.c @@ -107,7 +107,8 @@ krb5_c_fx_cf2_simple(krb5_context context, return KRB5_BAD_ENCTYPE; out_enctype_num = k1->enctype; assert(out != NULL); - assert((out_enctype = find_enctype(out_enctype_num)) != NULL); + out_enctype = find_enctype(out_enctype_num); + assert(out_enctype != NULL); if (out_enctype->prf == NULL) { if (context) krb5int_set_error(&(context->err), KRB5_CRYPTO_INTERNAL, diff --git a/src/util/et/com_err.c b/src/util/et/com_err.c index aaba89744..96922ec24 100644 --- a/src/util/et/com_err.c +++ b/src/util/et/com_err.c @@ -154,8 +154,10 @@ et_old_error_hook_func set_com_err_hook (et_old_error_hook_func new_proc) et_old_error_hook_func x; /* Broken initialization? What can we do? */ - assert(com_err_finish_init() == 0); - assert(com_err_lock_hook_handle() == 0); + if (com_err_finish_init() != 0) + abort(); + if (com_err_lock_hook_handle() != 0) + abort(); x = com_err_hook; com_err_hook = new_proc; k5_mutex_unlock(&com_err_hook_lock); @@ -167,8 +169,10 @@ et_old_error_hook_func reset_com_err_hook () et_old_error_hook_func x; /* Broken initialization? What can we do? */ - assert(com_err_finish_init() == 0); - assert(com_err_lock_hook_handle() == 0); + if (com_err_finish_init() != 0) + abort(); + if (com_err_lock_hook_handle() != 0) + abort(); x = com_err_hook; com_err_hook = NULL; k5_mutex_unlock(&com_err_hook_lock); -- 2.26.2