SSL Version Mismatch

These are old archives. They are kept for historic purposes only.
Post Reply
Stealth
Head of Support
Posts: 2085
Joined: Tue Jun 15, 2004 8:50 pm
Location: Chino Hills, CA, US
Contact:

SSL Version Mismatch

Post by Stealth »

I have upgraded my OpenSSL to version 0.9.7e, and Unreal gives me this error:

Code: Select all

./unreal start
Starting UnrealIRCd
[!!!] OpenSSL version mismatch: compiled for 'OpenSSL 0.9.7e 25 Oct 2004', library is 'OpenSSL 0.9.7a Feb 19 2003'
[!!!] Header<->library mismatches can make UnrealIRCd *CRASH*! Make sure you don't have multiple versions of openssl or zlib installed (eg: one in /usr and one in /usr/local). And, if you recently upgraded them, be sure to recompile Unreal.
This is after a "make clean". I have even tried it on a fresh install of Unreal. There is no duplicate OpenSSL installations on my system.

Unreal 3.2 (Ya, I know its old) compiled and ran fine with OpenSSL, and 3.2.2 compiled and ran fine on my test box after using the same method of upgrading OpenSSL.

Any suggestions would be appreciated.

EDIT: Forgot to mention this is RedHat 9
Syzop
UnrealIRCd head coder
Posts: 2179
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

Post by Syzop »

So this is after you recompiled unreal which was after you recompiled/upgraded openssl?

Well, it didn't make the 0.9.7a up to annoy you or anything ;p.
There must be some older version lying around then..
ls -al /usr/lib/libssl* /usr/local/lib/libssl*
Sometimes only 1 of the 2 things get upgraded, like the static version and not the .so, or the other way around. Or of course, it could be in a different path.. lots of possibilities here.

Reason for the required recompile is that openssl tends to change data structures etc so it could lead to mysterious crashes. If you read the openssl README they even say .so (dynamic libraries) support is experimental! ;p. Fortunately most distributions port back fixes so then this isn't a problem (in that case, the version nr # still shows up a vulnerable version but it is in fact patched).
Stealth
Head of Support
Posts: 2085
Joined: Tue Jun 15, 2004 8:50 pm
Location: Chino Hills, CA, US
Contact:

Post by Stealth »

Yes, I found a .so from the old version in /usr/lib which was a link to /lib, unfortunatly, I don't know where the new one went, if it even made a new one.

EDIT:

Code: Select all

ll /usr/lib/libssl*
-rwxr-xr-x    1 root     root       123800 Feb 25  2003 /usr/lib/libssl3.so
-rw-r--r--    1 root     root       261784 Jan  9 00:31 /usr/lib/libssl.a
lrwxrwxrwx    1 root     root           26 May 29  2004 /usr/lib/libssl.so -> ../../lib/libssl.so.0.9.7a

Code: Select all

ll /usr/local/lib/libssl*
ls: /usr/local/lib/libssl*: No such file or directory
Darvocet
Posts: 105
Joined: Sun Jun 27, 2004 6:40 am
Location: Houston, TX
Contact:

Post by Darvocet »

Stealth wrote:Yes, I found a .so from the old version in /usr/lib which was a link to /lib, unfortunatly, I don't know where the new one went, if it even made a new one.
I've actually had this same error on a BSD machine that had receintly upgraded BSD. The machine didnt have any other noticable problems except the Unreal error on start. When OpenSSL was uninstalled from the machine I saw the same error for ZLib. I did try to copy the old .so's over the new ones, and vice versa with no help. In the end I have just slated that server for a fresh install. I worked on it for a good couple hours, changing OpenSSL versions, and moving them around, specifying directories at compile time, etc. These attempts to repair the problem did not help.

So... in the meantime if someone does figure out how to correcly solve this problem would be great to hear. If not I'll just re-install the OS on that server and pretend it never happened!

Darvocet.
codemastr
Former UnrealIRCd head coder
Posts: 811
Joined: Sat Mar 06, 2004 8:47 pm
Location: United States
Contact:

Post by codemastr »

Darvocet wrote: So... in the meantime if someone does figure out how to correcly solve this problem would be great to hear. If not I'll just re-install the OS on that server and pretend it never happened!
There really isn't anything to it. The new version was apparently installed to a different directory. You must inform Unreal of this. The reason Unreal is the only one to report a problem is because as far as I know, we're the only ones to check for this problem. If the headers and libraries do not match, the program can crash randomly (OpenSSL is not ABI compatible between versions). Rather than allow that to happen, we warn you at startup.
-- codemastr
Post Reply