[Libreoffice-commits] core.git: external/neon

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Wed Feb 12 04:44:55 UTC 2020


 external/neon/UnpackedTarball_neon.mk           |    1 +
 external/neon/neon_fix_no_OPENSSL_Applink.patch |   11 +++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit fe75ce648c53e641048fe1fcd416868b784860e5
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Feb 11 22:03:00 2020 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Feb 12 05:44:19 2020 +0100

    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 at fbihome.de>
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    Tested-by: Jenkins

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) {


More information about the Libreoffice-commits mailing list