From: Emmanuel Deloget <[email protected]>
We are in control of meth->name (we string_alloc() it in RSA_meth_new())
so we know that we can free() it when it's no longer needed. Yet we have
to force the value to be non-const to avoid a compiler warning -- due to
the fact that OpenSSL defines the value as a const char*, regardless of
its origin.
---
src/openvpn/openssl_compat.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/openvpn/openssl_compat.h b/src/openvpn/openssl_compat.h
index 71ecfc06..69db6fb5 100644
--- a/src/openvpn/openssl_compat.h
+++ b/src/openvpn/openssl_compat.h
@@ -493,7 +493,12 @@ RSA_meth_free(RSA_METHOD *meth)
{
if (meth)
{
- free(meth->name);
+ /* OpenSSL defines meth->name to be a const pointer, yet we
+ * feed it with an allocated string (from RSA_meth_new()).
+ * Thus we are allowed to free it here. In order to avoid a
+ * ‘free’ discards ‘const’ warning, we force the pointer to
+ * be a non-const value. */
+ free((char *)meth->name);
free(meth);
}
}
--
2.11.0
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel