OPT_MR, OPT_MB, OPT_MISALIGN, OPT_ASYNCJOBS
} OPTION_CHOICE;
-OPTIONS speed_options[] = {
+const OPTIONS speed_options[] = {
{OPT_HELP_STR, 1, '-', "Usage: %s [options] ciphers...\n"},
{OPT_HELP_STR, 1, '-', "Valid options are:\n"},
{"help", OPT_HELP, '-', "Display this summary"},
continue;
#endif
- ret = ASYNC_start_job(&loopargs[i].inprogress_job,
- loopargs[i].wait_ctx, &job_op_count, loop_function,
+ ret = ASYNC_start_job(&loopargs[i].inprogress_job,
+ loopargs[i].wait_ctx, &job_op_count, loop_function,
(void *)(loopargs + i), sizeof(loopargs_t));
switch (ret) {
case ASYNC_PAUSE:
int speed_main(int argc, char **argv)
{
+ ENGINE *e = NULL;
loopargs_t *loopargs = NULL;
int async_init = 0;
int loopargs_len = 0;
char *prog;
-#ifndef OPENSSL_NO_ENGINE
const char *engine_id = NULL;
-#endif
const EVP_CIPHER *evp_cipher = NULL;
double d = 0.0;
OPTION_CHOICE o;
* initialised by each child process, not by the parent.
* So store the name here and run setup_engine() later on.
*/
-#ifndef OPENSSL_NO_ENGINE
engine_id = opt_arg();
-#endif
break;
case OPT_MULTI:
#ifndef NO_FORK
#endif
/* Initialize the engine after the fork */
- (void)setup_engine(engine_id, 0);
+ e = setup_engine(engine_id, 0);
/* No parameters; turn on everything. */
if ((argc == 0) && !doit[D_EVP]) {
ASYNC_cleanup_thread();
}
OPENSSL_free(loopargs);
+ release_engine(e);
return (ret);
}