diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2020-02-11 22:03:00 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-02-12 05:44:19 +0100 |
commit | fe75ce648c53e641048fe1fcd416868b784860e5 (patch) | |
tree | 0a68d09e8e8ef25328673781bfa44b183614e04b /external/neon | |
parent | 61e1e0413296928d929f99c0f006c6cbbcf4ac40 (diff) |
Fix a crash in OpenSSL when checking updates in dbgutil build on Windows
... showing a message "OPENSSL_Uplink(00007FFF05F33000,08): no OPENSSL_Applink"
with this call stack:
libeay32.dll!OPENSSL_showfatal(const char * fmta, ...) Line 986
at C:\lo\src\build\workdir\UnpackedTarball\openssl\crypto\cryptlib.c(986)
libeay32.dll!unimplemented() Line 23
at C:\lo\src\build\workdir\UnpackedTarball\openssl\ms\uplink.c(23)
libeay32.dll!file_ctrl(bio_st * b, int cmd, long num, void * ptr) Line 334
at C:\lo\src\build\workdir\UnpackedTarball\openssl\crypto\bio\bss_file.c(334)
libeay32.dll!BIO_ctrl(bio_st * b, int cmd, long larg, void * parg) Line 361
at C:\lo\src\build\workdir\UnpackedTarball\openssl\crypto\bio\bio_lib.c(361)
[Inline Frame] libeay32.dll!X509_print_ex_fp(_iobuf *) Line 93
at C:\lo\src\build\workdir\UnpackedTarball\openssl\crypto\asn1\t_x509.c(93)
libeay32.dll!X509_print_fp(_iobuf * fp, x509_st * x) Line 80
at C:\lo\src\build\workdir\UnpackedTarball\openssl\crypto\asn1\t_x509.c(80)
neon.dll!make_chain(stack_st_X509 * chain) Line 446
at C:\lo\src\build\workdir\UnpackedTarball\neon\src\ne_openssl.c(446)
neon.dll!ne__negotiate_ssl(ne_session_s * sess) Line 752
at C:\lo\src\build\workdir\UnpackedTarball\neon\src\ne_openssl.c(752)
neon.dll!open_connection(ne_session_s * sess) Line 1706
at C:\lo\src\build\workdir\UnpackedTarball\neon\src\ne_request.c(1706)
neon.dll!send_request(ne_request_s * req, const ne_buffer * request) Line 1011
at C:\lo\src\build\workdir\UnpackedTarball\neon\src\ne_request.c(1011)
neon.dll!ne_begin_request(ne_request_s * req) Line 1245
at C:\lo\src\build\workdir\UnpackedTarball\neon\src\ne_request.c(1245)
neon.dll!ne_request_dispatch(ne_request_s * req) Line 1456
at C:\lo\src\build\workdir\UnpackedTarball\neon\src\ne_request.c(1456)
ucpdav1.dll!webdav_ucp::NeonSession::OPTIONS(const rtl::OUString & inPath, webdav_ucp::DAVOptions & rOptions, const webdav_ucp::DAVRequestEnvironment & rEnv) Line 918
at C:\lo\src\core\ucb\source\ucp\webdav-neon\NeonSession.cxx(918)
ucpdav1.dll!webdav_ucp::DAVResourceAccess::OPTIONS(webdav_ucp::DAVOptions & rOptions, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & xEnv) Line 187
at C:\lo\src\core\ucb\source\ucp\webdav-neon\DAVResourceAccess.cxx(187)
ucpdav1.dll!webdav_ucp::Content::getResourceOptions(const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & xEnv, webdav_ucp::DAVOptions & rDAVOptions, const std::unique_ptr<webdav_ucp::DAVResourceAccess,std::default_delete<webdav_ucp::DAVResourceAccess>> & rResAccess, bool * networkAccessAllowed) Line 3934
at C:\lo\src\core\ucb\source\ucp\webdav-neon\webdavcontent.cxx(3934)
ucpdav1.dll!webdav_ucp::Content::open(const com::sun::star::ucb::OpenCommandArgument3 & rArg, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & xEnv) Line 2227
at C:\lo\src\core\ucb\source\ucp\webdav-neon\webdavcontent.cxx(2227)
ucpdav1.dll!webdav_ucp::Content::execute(const com::sun::star::ucb::Command & aCommand, long __formal, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & Environment) Line 553
at C:\lo\src\core\ucb\source\ucp\webdav-neon\webdavcontent.cxx(553)
updatefeedlo.dll!`anonymous namespace'::UpdateInformationProvider::load(const rtl::OUString & rURL) Line 493
at C:\lo\src\core\extensions\source\update\feed\updatefeed.cxx(493)
updatefeedlo.dll!`anonymous namespace'::UpdateInformationProvider::getUpdateInformationEnumeration(const com::sun::star::uno::Sequence<rtl::OUString> & repositories, const rtl::OUString & extensionId) Line 591
at C:\lo\src\core\extensions\source\update\feed\updatefeed.cxx(591)
updchklo.dll!checkForUpdates(UpdateInfo & o_rUpdateInfo, const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & rxContext, const com::sun::star::uno::Reference<com::sun::star::task::XInteractionHandler> & rxInteractionHandler, const com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider> & rUpdateInfoProvider, const rtl::OUString & rOS, const rtl::OUString & rArch, const com::sun::star::uno::Sequence<rtl::OUString> & rRepositoryList, const rtl::OUString & rGitID, const rtl::OUString & rInstallSetID) Line 129
at C:\lo\src\core\extensions\source\update\check\updateprotocol.cxx(129)
updchklo.dll!checkForUpdates(UpdateInfo & o_rUpdateInfo, const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & rxContext, const com::sun::star::uno::Reference<com::sun::star::task::XInteractionHandler> & rxInteractionHandler, const com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider> & rUpdateInfoProvider) Line 97
at C:\lo\src\core\extensions\source\update\check\updateprotocol.cxx(97)
updchklo.dll!`anonymous namespace'::UpdateCheckThread::runCheck(bool & rbExtensionsChecked) Line 393
at C:\lo\src\core\extensions\source\update\check\updatecheck.cxx(393)
updchklo.dll!`anonymous namespace'::UpdateCheckThread::run() Line 501
at C:\lo\src\core\extensions\source\update\check\updatecheck.cxx(501)
updchklo.dll!threadFunc(void * param) Line 186
at C:\lo\src\core\include\osl\thread.hxx(186)
sal3.dll!oslWorkerWrapperFunction(void * pData) Line 62
at C:\lo\src\core\sal\osl\w32\thread.cxx(62)
ucrtbased.dll!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97
at minkernel\crts\ucrt\src\appcrt\startup\thread.cpp(97)
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()
The problem is missing OPENSSL_Applink function in soffice.bin
(see workdir/UnpackedTarball/openssl/ms/uplink.c), because
openssl/applink.c is not included. That started after commit
5c89198f69f4487b1c872269ec6f2931490b3d02, which enabled debug
output from Neon in dbgutil builds.
Just comment out the call to the OpenSSL function that uses file
pointer API from the Neon debug code on Windows.
Change-Id: Id0188990e9122ee9fd2b3b6b7292bbeb1d206515
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88412
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'external/neon')
-rw-r--r-- | external/neon/UnpackedTarball_neon.mk | 1 | ||||
-rw-r--r-- | external/neon/neon_fix_no_OPENSSL_Applink.patch | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/external/neon/UnpackedTarball_neon.mk b/external/neon/UnpackedTarball_neon.mk index ca7da77ea7c4..e12d13b6a623 100644 --- a/external/neon/UnpackedTarball_neon.mk +++ b/external/neon/UnpackedTarball_neon.mk @@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,neon,\ external/neon/neon_fix_lock_timeout_windows.patch \ external/neon/neon_fix_sspi_session_timeout.patch \ external/neon/neon_uri_parse_allow_others.patch \ + $(if $(filter WNT,$(OS)),external/neon/neon_fix_no_OPENSSL_Applink.patch) \ )) # vim: set noet sw=4 ts=4: diff --git a/external/neon/neon_fix_no_OPENSSL_Applink.patch b/external/neon/neon_fix_no_OPENSSL_Applink.patch new file mode 100644 index 000000000000..40291ff412bf --- /dev/null +++ b/external/neon/neon_fix_no_OPENSSL_Applink.patch @@ -0,0 +1,11 @@ +--- src/ne_openssl.c ++++ src/ne_openssl.c +@@ -440,7 +440,7 @@ + #ifdef NE_DEBUGGING + if (ne_debug_mask & NE_DBG_SSL) { + fprintf(ne_debug_stream, "Cert #%d:\n", n); +- X509_print_fp(ne_debug_stream, cert->subject); ++ // X509_print_fp(ne_debug_stream, cert->subject); + } + #endif + if (top == NULL) { |