diff options
author | Muhammad Moinur Rahman <bofh@FreeBSD.org> | 2022-05-31 06:14:13 +0000 |
---|---|---|
committer | Muhammad Moinur Rahman <bofh@FreeBSD.org> | 2022-05-31 06:14:13 +0000 |
commit | 399af2d69e8383a7e77ba9dfa0e3bd02bbdc9ab6 (patch) | |
tree | f7d4bcca8fd25e0f4911674b5e74fdf150a451b6 | |
parent | 89b8dcd9b00814ce55e335e4cd575c70d6e322e5 (diff) | |
download | ports-399af2d69e8383a7e77ba9dfa0e3bd02bbdc9ab6.tar.gz ports-399af2d69e8383a7e77ba9dfa0e3bd02bbdc9ab6.zip |
databases/freetds: Runtime fix with latest openssl
- FreeTDS fails to connect with MsSQL after the latest updates of
OpenSSL specially after the release of 13.1 SNAPSHOTS including
13.1-RELEASE and more specifically when openssl turned into 1.1.1l
See the following for more details:
https://github.com/FreeTDS/freetds/issues/458
- After the upgrade to version 1.3.9 FreeTDS fails to upgrade when using
ports tree. [1]
PR: 261967 263641 [1]
Reported by: jsc@ntu.edu.tw eugen [1]
-rw-r--r-- | databases/freetds/Makefile | 4 | ||||
-rw-r--r-- | databases/freetds/files/patch-src_tds_tls.c | 70 |
2 files changed, 68 insertions, 6 deletions
diff --git a/databases/freetds/Makefile b/databases/freetds/Makefile index a9cce45c5a65..0283890c5679 100644 --- a/databases/freetds/Makefile +++ b/databases/freetds/Makefile @@ -2,6 +2,7 @@ PORTNAME= freetds PORTVERSION= 1.3.10 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= databases MASTER_SITES= https://www.freetds.org/files/stable/ \ @@ -75,7 +76,8 @@ post-patch: ${WRKSRC}/Makefile.am @${REINPLACE_CMD} -e 's|/pool.conf|/pool.conf.sample|g' \ ${WRKSRC}/src/pool/Makefile.am - @${REINPLACE_CMD} -e 's|\($$with_iodbc/include\)|\1/libiodbc|g' \ + @${REINPLACE_CMD} -e 's|\($$with_iodbc/include\)|\1/libiodbc|g ; \ + s| odbcss.h||g' \ ${WRKSRC}/configure.ac post-install: diff --git a/databases/freetds/files/patch-src_tds_tls.c b/databases/freetds/files/patch-src_tds_tls.c index 07a8cb8ec5ac..35612e6faff3 100644 --- a/databases/freetds/files/patch-src_tds_tls.c +++ b/databases/freetds/files/patch-src_tds_tls.c @@ -1,6 +1,6 @@ ---- src/tds/tls.c.orig 2017-11-30 09:00:01 UTC +--- src/tds/tls.c.orig 2021-08-31 09:00:01 UTC +++ src/tds/tls.c -@@ -50,6 +50,10 @@ +@@ -53,6 +53,10 @@ #include <sys/socket.h> #endif @@ -9,9 +9,18 @@ +#endif + #include <freetds/tds.h> - #include <freetds/string.h> + #include <freetds/utils/string.h> #include <freetds/tls.h> -@@ -72,6 +76,15 @@ +@@ -63,7 +67,7 @@ + + /** + * \addtogroup network +- * @{ ++ * @{ + */ + + #if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL) +@@ -75,6 +79,15 @@ #define SSL_PTR ptr #else @@ -25,5 +34,56 @@ +#endif + /* some compatibility layer */ - #if OPENSSL_VERSION_NUMBER < 0x1010000FL + #if !HAVE_BIO_GET_DATA static inline void +@@ -115,7 +128,7 @@ tds_pull_func_login(SSL_PULL_ARGS) + int have; + + tdsdump_log(TDS_DBG_FUNC, "in tds_pull_func_login\n"); +- ++ + /* here we are initializing (crypted inside TDS packets) */ + + /* if we have some data send it */ +@@ -450,7 +463,7 @@ tds_ssl_init(TDSSOCKET *tds) + const char *tls_msg; + + xcred = NULL; +- session = NULL; ++ session = NULL; + tls_msg = "initializing tls"; + + if (!tls_initialized) { +@@ -826,18 +839,25 @@ check_name_match(ASN1_STRING *name, const char *hostna + static int + check_name_match(ASN1_STRING *name, const char *hostname) + { +- char *name_utf8 = NULL; ++ char *name_utf8 = NULL, *tmp_name; + int ret, name_len; + + name_len = ASN1_STRING_to_UTF8((unsigned char **) &name_utf8, name); + if (name_len < 0) + return 0; + ++ tmp_name = tds_strndup(name_utf8, name_len); ++ OPENSSL_free(name_utf8); ++ if (!tmp_name) ++ return 0; ++ ++ name_utf8 = tmp_name; ++ + tdsdump_log(TDS_DBG_INFO1, "Got name %s\n", name_utf8); + ret = 0; + if (strlen(name_utf8) == name_len && check_wildcard(name_utf8, hostname)) + ret = 1; +- OPENSSL_free(name_utf8); ++ free(name_utf8); + return ret; + } + +@@ -1095,4 +1115,3 @@ tds_ssl_deinit(TDSCONNECTION *conn) + + #endif + /** @} */ +- |