kadm5: Fix clobbering of interruption code in kadm5_c_iter_principals()
This commit is contained in:
@@ -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;
|
||||||
|
Reference in New Issue
Block a user