Is this the correct list to post bug reports to?
There is a bug in cryptlib.c when using app locks. It is in both 0.9.6c and 0.9.7
beta 3. In
0.9.7 beta3 CRYPTO_NUM_LOCKS is 31. When requesting an app lock this code gets called:
int CRYPTO_get_new_lockid(char *name)
{
char *str;
int i;
...
i=sk_push(app_locks,str);
if (!i)
OPENSSL_free(str);
else
i+=CRYPTO_NUM_LOCKS; /* gap of one :-) */
return(i);
}
which returns 32 for the new app lock. Note that, as the comment says, there is a gap
of one;
there is no lock numbered 31. Now when you try to access the name of that new lock,
32, this code
is called:
const char *CRYPTO_get_lock_name(int type)
{
if (type < 0)
return("dynamic");
else if (type < CRYPTO_NUM_LOCKS)
return(lock_names[type]);
else if (type-CRYPTO_NUM_LOCKS >= sk_num(app_locks))
return("ERROR");
else
return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
}
However since type-CRYPTO_NUM_LOCKS is 1 and that is >= the number of app locks, 1,
you get
"ERROR" instead of the lock's name.
This can be fixed by not having the gap, or by compensating for the gap. I don't know
what the
original intention was in having the gap so I'm not sure what the best way to fix it
is.
Tim
__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]