aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/kdb/db2/kdb_db2.c
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2009-01-31 01:07:04 +0000
committerKen Raeburn <raeburn@mit.edu>2009-01-31 01:07:04 +0000
commit09bca9fed88e515944d6384f6ea0b973ae964a67 (patch)
tree8d818a6ee8c7a6d71b1afea73eb84227b5e0c271 /src/plugins/kdb/db2/kdb_db2.c
parent4314bd83648fa703fb5ecaabdae7c6ee7ae4a481 (diff)
downloadkrb5-09bca9fed88e515944d6384f6ea0b973ae964a67.zip
krb5-09bca9fed88e515944d6384f6ea0b973ae964a67.tar.gz
krb5-09bca9fed88e515944d6384f6ea0b973ae964a67.tar.bz2
recode as more straight-line code to simplify analysis
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21848 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/plugins/kdb/db2/kdb_db2.c')
-rw-r--r--src/plugins/kdb/db2/kdb_db2.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/plugins/kdb/db2/kdb_db2.c b/src/plugins/kdb/db2/kdb_db2.c
index 90c8933..8582809 100644
--- a/src/plugins/kdb/db2/kdb_db2.c
+++ b/src/plugins/kdb/db2/kdb_db2.c
@@ -1197,6 +1197,8 @@ krb5_db2_db_iterate_ext(krb5_context context,
#endif
}
while (dbret == 0) {
+ krb5_error_code retval2;
+
contdata.data = contents.data;
contdata.length = contents.size;
retval = krb5_decode_princ_contents(context, &contdata, &entries);
@@ -1207,16 +1209,16 @@ krb5_db2_db_iterate_ext(krb5_context context,
break;
retval = (*func) (func_arg, &entries);
krb5_dbe_free_contents(context, &entries);
+ retval2 = k5_mutex_lock(krb5_db2_mutex);
/* Note: If re-locking fails, the wrapper in db2_exp.c will
still try to unlock it again. That would be a bug. Fix
when integrating the locking better. */
- if (retval) {
- (void) k5_mutex_lock(krb5_db2_mutex);
- break;
- }
- retval = k5_mutex_lock(krb5_db2_mutex);
if (retval)
break;
+ if (retval2) {
+ retval = retval2;
+ break;
+ }
if (!recursive) {
dbret = (*db->seq) (db, &key, &contents,
backwards ? R_PREV : R_NEXT);