Skip to content

Commit

Permalink
Avoid side effects in assert expressions
Browse files Browse the repository at this point in the history
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.)

(back ported from commit 221cd4a)

ticket: 7614 (new)
version_fixed: 1.9.5
status: resolved
  • Loading branch information
tlyu committed Apr 22, 2013
1 parent 5bcaa63 commit 021eb1f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/lib/crypto/krb/cf2.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,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,
Expand Down
12 changes: 8 additions & 4 deletions src/util/et/com_err.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 021eb1f

Please sign in to comment.