From: Greg Hudson Date: Fri, 9 Mar 2012 18:30:31 +0000 (+0000) Subject: Avoid side effects in assert expressions X-Git-Tag: krb5-1.10.4-final~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a5475fe5969a529e4bc9892dc2f7e17c0b6d685;p=thirdparty%2Fkrb5.git 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.) (cherry picked from commit 221cd4a23691601a14500bc00146c265b50bdc94) ticket: 7542 (new) version_fixed: 1.10.4 status: resolved --- diff --git a/src/lib/apputils/net-server.c b/src/lib/apputils/net-server.c index 43be27c951..ba4d2160e1 100644 --- a/src/lib/apputils/net-server.c +++ b/src/lib/apputils/net-server.c @@ -1103,7 +1103,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 5f82d62afd..7334ed168d 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 aaba89744f..96922ec24f 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);