Skip to content

Commit

Permalink
apps/speed.c: limit loop counters to 2^31 in order to avoid overflows
Browse files Browse the repository at this point in the history
in performance calculations. For the moment there is only one code
fast enough to suffer from this: Intel AES-NI engine.
PR: 2096
  • Loading branch information
Andy Polyakov committed Jan 17, 2010
1 parent 78a533c commit d582c98
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions apps/speed.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,9 +277,11 @@ static DWORD WINAPI sleepy(VOID *arg)

static double Time_F(int s)
{
double ret;
static HANDLE thr;

if (s == START)
{
HANDLE thr;
schlock = 0;
thr = CreateThread(NULL,4096,sleepy,NULL,0,NULL);
if (thr==NULL)
Expand All @@ -288,17 +290,25 @@ static double Time_F(int s)
BIO_printf(bio_err,"unable to CreateThread (%d)",ret);
ExitProcess(ret);
}
CloseHandle(thr); /* detach the thread */
while (!schlock) Sleep(0); /* scheduler spinlock */
ret = app_tminterval(s,usertime);
}
else
{
ret = app_tminterval(s,usertime);
if (run) TerminateThread(thr,0);
CloseHandle(thr);
}

return app_tminterval(s,usertime);
return ret;
}
#else

static double Time_F(int s)
{
return app_tminterval(s,usertime);
double ret = app_tminterval(s,usertime);
if (s == STOP) alarm(0);
return ret;
}
#endif

Expand Down Expand Up @@ -1454,7 +1464,7 @@ int MAIN(int argc, char **argv)
# error "You cannot disable DES on systems without SIGALRM."
#endif /* OPENSSL_NO_DES */
#else
#define COND(c) (run)
#define COND(c) (run && count<0x7fffffff)
#define COUNT(d) (count)
#ifndef _WIN32
signal(SIGALRM,sig_done);
Expand Down

0 comments on commit d582c98

Please sign in to comment.