LP #1341067: Replace one Valgrind suppression for OpenSSL with a deallocation

Description

**Reported in Launchpad by Laurynas Biveinis last update 20-07-2016 06:10:38

=== modified file 'mysql-test/valgrind.supp'
— mysql-test/valgrind.supp 2013-10-01 14:35:36 +0000
+++ mysql-test/valgrind.supp 2014-07-10 10:26:41 +0000
@@ -1045,16 +1045,6 @@
}

{

  • OpenSSL still reachable.

  • Memcheck:Leak

  • fun:malloc

  • fun:CRYPTO_malloc

  • fun:sk_new

  • ...

  • fun:SSL_COMP_get_compression_methods

  • fun:SSL_library_init
    -}
    -{
    BUG#14801497 CONDITIONAL JUMP OR MOVE DEPENDS ON UNINITIALISED VALUE(S) IN CREATE_TMP_TABLE
    Memcheck:Cond
    fun:_Z16create_tmp_tableP3THDP15TMP_TABLE_PARAMR4ListI4ItemEP8st_orderbbyyPKc

=== modified file 'vio/vio.c'

— vio/vio.c 2014-02-17 11:12:40 +0000
+++ vio/vio.c 2014-07-10 11:49:48 +0000
@@ -368,5 +368,6 @@
ERR_free_strings();
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
+ sk_SSL_COMP_free(SSL_COMP_get_compression_methods());
#endif
}

Environment

None

Smart Checklist

Activity

Show:

lpjirasync January 22, 2018 at 7:08 PM

**Comment from Launchpad by: Laurynas Biveinis on: 20-07-2016 06:10:38

Thanks for the heads-up, opened bug 1604676 for this.

lpjirasync January 22, 2018 at 7:07 PM

**Comment from Launchpad by: Arkadiusz Miśkiewicz on: 19-07-2016 17:24:28

This causes collision when using php which loads mysql module (linked with percona libs) and curl module (that uses libcurl). Both, percona and curl are trying to free the same global data.

https://github.com/curl/curl/issues/905

Why percona doesn't use proper API - SSL_COMP_free_compression_methods() ?

SSL_COMP_free_compression_methods() uses sk_pop_free() which is protected from double free.

— percona-server-5.6.28-76.1/vio/vio.c~ 2016-01-08 23:12:24.000000000 +0100
+++ percona-server-5.6.28-76.1/vio/vio.c 2016-07-19 18:54:23.648042457 +0200
@@ -399,6 +399,6 @@ void vio_end(void)
ERR_free_strings();
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();

  • sk_SSL_COMP_free(SSL_COMP_get_compression_methods());
    + SSL_COMP_free_compression_methods();
    #endif
    }

Done

Details

Assignee

Reporter

Priority

Smart Checklist

Created January 22, 2018 at 7:07 PM
Updated January 22, 2018 at 7:08 PM
Resolved January 22, 2018 at 7:07 PM