> >>> I ran the openssl utility on the same system as Tomcat, and Process
> >>> Explorer shows that its copy of libeay32.dll stays at the correct
> >>> address. Additionally, I tested the FIPS-compatible libeay32.dll on
> >>> a different server with Tomcat, and had the same problem. This seems
> >>> to indicate that the memory address issue is specific to Tomcat, not
> >>> the server.
> >>
> >> Or running within a JVM which has a significant amount of native code
> >> that gets loaded first, which may cause the loader to re-locate the
> >> library when it finally gets loaded.
> >>
> >> Any interest in trying some Java-based testing using libtcnative?
> >
> > I'm game, if you let me know what you'd like me to do. : )
> 
> All you should have to do is write a small Java program that calls
> AprLifecycleListener.lifecycleEvent with an event of type
> BEFORE_INIT_EVENT.
> 
> You'll of course have to call things like setFIPSMode(true), etc.
> 
> I wonder if you did that without the rest of Tomcat loaded if anything would
> change. I would bet that it's more likely that the bulk of the JVM is causing
> the re-location of the library than anything else.

You are right. Even with that simple program the OpenSSL library gets rebased.


> >> I'm curious: what base address did you use when you changed it?
> >
> > The one that worked for me was 0x6FB00000.
> 
> Did you just choose one randomly?

Most of the other memory addresses in the process seemed to be at the 
0x6xxxxxxx range, so I just tried adding 6 to the beginning of the default 
memory address, and it worked.


> I wonder if you follow the suggestions from the aforementioned thread for
> re-building everything with the /FIXED switch. That seems to have fixed
> everyone's issues, but you have to be sure to build everything very carefully
> or one component can still be relocatable. tcnative of course does not care.

I may still be doing something wrong, but I still haven't been able to get this 
switch to work. I added it to the LFLAGS set in the OpenSSL build, but 
libeay32.dll still gets rebased when running through tcnative.


--Steve Nickels
Ipswitch, Inc.

Reply via email to