Bug 109652 - compatiblity with openssl 0.9.8
Summary: compatiblity with openssl 0.9.8
Status: RESOLVED FIXED
Alias: None
Product: kio
Classification: Frameworks and Libraries
Component: kssl (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: George Staikos
URL:
Keywords:
: 113323 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-07-26 16:31 UTC by Phh
Modified: 2007-06-02 02:13 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
The fix (1002 bytes, patch)
2005-07-26 16:33 UTC, Phh
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Phh 2005-07-26 16:31:33 UTC
Version:            (using KDE KDE 3.4.1)
Installed from:    Compiled From Sources
Compiler:          gcc 4.0.1 
OS:                Linux

When trying to load any https page in konqueror i get a message (in french...) which say that the process (kio_https i guess) end without reason ("inatendue").
In X errors i found:
kparts: BrowserRun::scanfile https://www.google.com/accounts/ServiceLogin?service=ig&nui=1&passive=true&continue=http://www.google.com/ig&followup=http://www.google.com/ig&ltmpl=default
kdeinit: Got EXEC_NEW 'kio_http' from launcher.
kio (KLauncher): kio_http (pid 18547) up and running.
kdecore (KLibLoader): Loading the next library global with flag 257.
kdecore (KLibLoader): WARNING: KLibrary: /usr/lib/libcrypto.so.0.9.8: undefined symbol: PKCS7_content_free
kdecore (KLibLoader): Loading the next library global with flag 257.
kdecore (KLibLoader): WARNING: KLibrary: /usr/lib/libcrypto.so.0.9.8: undefined symbol: OpenSSL_add_all_algorithms
kdecore (KLibLoader): WARNING: KLibrary: /usr/lib/libcrypto.so.0.9.8: undefined symbol: OpenSSL_add_all_algorithms_conf
kdecore (KLibLoader): WARNING: KLibrary: /usr/lib/libcrypto.so.0.9.8: undefined symbol: OpenSSL_add_all_algorithms_noconf
kssl: KSSL initialize
kioslave: ####### CRASH ###### protocol = https pid = 18547 signal = 11
/usr/lib/libkio.so.4(_ZN3KIO9SlaveBase15sigsegv_handlerEi+0xad)[0xb7d9dacd]
[0xffffe420]

I looked in this library, right these symbols doesn't exists but....
OPENSSL_add_all_algorithms_noconf (and same for others... just the OpenSSL that is in uppercase)
Joined the patch i made , but it has no backward compatibilty and i wait build ended to try..
Comment 1 Phh 2005-07-26 16:33:04 UTC
Created attachment 11938 [details]
The fix

This fix, but no backward compatibilty...
Comment 2 Michael Nottebrock 2005-11-12 17:06:20 UTC
I'm seeing the same crashes with kio_imap4 and openssl 0.9.8 in KDE 3.4.3 - the patch doesn't fix them however.

It would be a real bummer if KDE 3.5 were incompatible with openssl 0.9.8.
Comment 3 George Staikos 2005-11-13 00:58:16 UTC
*** Bug 113323 has been marked as a duplicate of this bug. ***
Comment 4 George Staikos 2006-03-09 16:16:26 UTC
SVN commit 517010 by staikos:

more openssl version compatibility
BUG: 109652


 M  +10 -0     kopenssl.cc  


--- branches/KDE/3.5/kdelibs/kio/kssl/kopenssl.cc #517009:517010
@@ -576,21 +576,31 @@
       if (_cryptoLib) {
          if (x) ((int (*)())x)();
          x = _cryptoLib->symbol("OpenSSL_add_all_algorithms");
+         if (!x)
+            x = _cryptoLib->symbol("OPENSSL_add_all_algorithms");
          if (x) {
            ((void (*)())x)();
          } else {
            x = _cryptoLib->symbol("OpenSSL_add_all_algorithms_conf");
+           if (!x)
+              x = _cryptoLib->symbol("OPENSSL_add_all_algorithms_conf");
            if (x) {
              ((void (*)())x)();
            } else {
              x = _cryptoLib->symbol("OpenSSL_add_all_algorithms_noconf");
+             if (!x)
+                x = _cryptoLib->symbol("OPENSSL_add_all_algorithms_noconf");
              if (x)
                ((void (*)())x)();
            }
          }
          x = _cryptoLib->symbol("OpenSSL_add_all_ciphers");
+         if (!x)
+            x = _cryptoLib->symbol("OPENSSL_add_all_ciphers");
          if (x) ((void (*)())x)();
          x = _cryptoLib->symbol("OpenSSL_add_all_digests");
+         if (!x)
+            x = _cryptoLib->symbol("OPENSSL_add_all_digests");
          if (x) ((void (*)())x)();
       }
    }