diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2021-10-29 09:26:28 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2021-10-29 13:26:12 +0200 |
commit | a5cea74034a8e029bfdf0f2b82ea8800bf5bd206 (patch) | |
tree | 9d87c2d78e9c5e16b83c445ce23ed2e0fc8df175 /svl | |
parent | 2f39a7b8f90a65d0be9894a0edcf01c161289459 (diff) |
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 <sbergman@redhat.com>
Diffstat (limited to 'svl')
-rw-r--r-- | svl/source/crypto/cryptosign.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
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<unsigned char>& 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<unsigned char>& 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) |