kadm5: Fix clobbering of interruption code in kadm5_c_iter_principals()

This commit is contained in:
Nicolas Williams
2022-12-30 16:39:00 -06:00
parent 26488ce60d
commit a5093f6e0d

View File

@@ -131,6 +131,7 @@ kadm5_c_iter_principals(void *server_handle,
int32_t tmp; int32_t tmp;
krb5_data reply; krb5_data reply;
size_t i; size_t i;
int stop = 0;
ret = _kadm5_connect(server_handle, 0 /* want_write */); ret = _kadm5_connect(server_handle, 0 /* want_write */);
if (ret) if (ret)
@@ -188,7 +189,6 @@ kadm5_c_iter_principals(void *server_handle,
if (tmp < 0) { if (tmp < 0) {
size_t n = -tmp; size_t n = -tmp;
int more = 1; int more = 1;
int stop = 0;
/* The server supports online iteration, hooray! */ /* The server supports online iteration, hooray! */
@@ -249,12 +249,6 @@ kadm5_c_iter_principals(void *server_handle,
} }
free(princ); free(princ);
} }
if (!more) {
if (ret == 0)
ret = stop;
break;
}
} }
/* Get the final result code */ /* Get the final result code */
krb5_data_free(&reply); krb5_data_free(&reply);
@@ -293,10 +287,12 @@ kadm5_c_iter_principals(void *server_handle,
} }
} }
out: out:
krb5_clear_error_message(context->context); krb5_clear_error_message(context->context);
out_keep_error: out_keep_error:
if (stop)
ret = stop;
krb5_storage_free(sp); krb5_storage_free(sp);
krb5_data_free(&reply); krb5_data_free(&reply);
return ret; return ret;