From a5cea74034a8e029bfdf0f2b82ea8800bf5bd206 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 29 Oct 2021 09:26:28 +0200 Subject: Fix misuses of NULL across Windows-only code ...which defines NULL as a plain 0 integer literal instead of the GNU __null extension, so clang-cl's -Wnull-conversion cannot kick in. These findings are from an experimental build done with clang-cl and a modified > --- a/clang/lib/Headers/stddef.h > +++ b/clang/lib/Headers/stddef.h > @@ -83,6 +83,10 @@ typedef __WCHAR_TYPE__ wchar_t; > # if !defined(__MINGW32__) && !defined(_MSC_VER) > # define NULL __null > # else > -# define NULL 0 > +# if __cplusplus >= 201103L > +# define NULL nullptr > +# else > +# define NULL 0 > +# endif > # endif > #else > # define NULL ((void*)0) However, that build also ran into lots of places where 3rd-party code in external/ and Windows system headers caused issues when NULL is nullptr (which I worked around with various hacky patches for that build), so this is unfortunately not something that can easily be enabled generally. Change-Id: I10674464498a9bc63578d9e6cc32ddde23ab4f30 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124419 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- svl/source/crypto/cryptosign.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'svl') diff --git a/svl/source/crypto/cryptosign.cxx b/svl/source/crypto/cryptosign.cxx index e7c5964f6d9e..25ac21b695c4 100644 --- a/svl/source/crypto/cryptosign.cxx +++ b/svl/source/crypto/cryptosign.cxx @@ -1426,7 +1426,7 @@ bool Signing::Sign(OStringBuffer& rCMSHexBuffer) HCRYPTMSG hDecodedMsg = CryptMsgOpenToDecode(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, CMSG_DETACHED_FLAG, CMSG_SIGNED, - NULL, + 0, nullptr, nullptr); if (!hDecodedMsg) @@ -2092,7 +2092,7 @@ bool Signing::Verify(const std::vector& aData, HCRYPTMSG hMsg = CryptMsgOpenToDecode(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, CMSG_DETACHED_FLAG, 0, - NULL, + 0, nullptr, nullptr); if (!hMsg) @@ -2162,7 +2162,7 @@ bool Signing::Verify(const std::vector& aData, // initializes it with the certificates from the message. HCERTSTORE hStoreHandle = CertOpenStore(CERT_STORE_PROV_MSG, PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, - NULL, + 0, 0, hMsg); if (!hStoreHandle) -- cgit