Thanks again Wan-Teh,
I'm just trying to build the agent with Sun Studio .. unfortunately it's
not that easy as building NSS.
Rgds,
Bernhard
On 04/20/2011 05:01 PM, Wan-Teh Chang wrote:
On Wed, Apr 20, 2011 at 7:46 AM, Bernhard Thalmayr
<bernhard.thalm...@painstakingminds.com> wrote:
Thanks for the pointer Wan-Teh
meanwhile I already used dbx and got this ...
You're right. I haven't used Solaris for a long time. If
you compile the code with Sun Studio compilers, you
should use dbx.
Current function is SSL_OptionGet
809 *pOn = on;
current thread: t@1
=>[1] SSL_OptionGet(fd = 0x135d48, which = 1, pOn = 0xffbfe7df), line 809 in
"sslsock.c"
[2] smi::Connection::secureSocket(0xffbff09c, 0x201ec4, 0x201ec8,
0xfe75c9e9, 0x135d48, 0xfe7807b0), at 0xfe6a2844
The related agent-code looks like this ... I think it's not correct...
"if (SECSuccess == secStatus) {
sslMethodName = "SSL_OptionSet";
{
bool state;
secStatus = SSL_OptionGet(sslSocket,SSL_SECURITY,
(PRBool*)&state);"
Yes, that code is wrong.
The third-argument of SSL_OptionGet is "PRBool *pOn", so
the local variable 'state' should be declared as 'PRBool' instead
of 'bool'.
PRBool is the same as 'int', which is 4 bytes.
'bool' is apparently one byte because the address of 'bool state'
is 0xffbfe7df. Note the 'f' (= decimal 15) at the end, which is
not a multiple of 4.
If you change the last two lines to:
PRBool state;
secStatus = SSL_OptionGet(sslSocket,SSL_SECURITY,&state);
that should fix the crash. Note that the compiler may have warned
about the wrong argument type, which could be why the (PRBool*)
was added (incorrectly).
Wan-Teh
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto