From 7b2e42754b4611c5a3111c8f1ef7e59ad181187c Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Fri, 8 Jan 2021 13:51:19 +0100 Subject: [PATCH] Appease clang++ 12 asan on MacOS MacOS clang++ 12 with asan does not like to access a vector of bytes outside it's begin()..end(), even thouh we assured there is capacity. So make sure the size is set before groping inside the vector. --- pdns/test-dnscrypt_cc.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pdns/test-dnscrypt_cc.cc b/pdns/test-dnscrypt_cc.cc index 79efcf56c9..89658906c4 100644 --- a/pdns/test-dnscrypt_cc.cc +++ b/pdns/test-dnscrypt_cc.cc @@ -157,8 +157,8 @@ BOOST_AUTO_TEST_CASE(DNSCryptEncryptedQueryValid) { requiredSize = DNSCryptQuery::s_minUDPLength; } - plainQuery.reserve(requiredSize); uint16_t len = plainQuery.size(); + plainQuery.resize(requiredSize); uint16_t encryptedResponseLen = 0; int res = ctx->encryptQuery((char*) plainQuery.data(), len, plainQuery.capacity(), clientPublicKey, clientPrivateKey, clientNonce, false, &encryptedResponseLen, std::make_shared(resolverCert)); @@ -245,9 +245,8 @@ BOOST_AUTO_TEST_CASE(DNSCryptEncryptedQueryValidWithOldKey) { requiredSize = DNSCryptQuery::s_minUDPLength; } - plainQuery.reserve(requiredSize); - uint16_t len = plainQuery.size(); + plainQuery.resize(requiredSize); uint16_t encryptedResponseLen = 0; int res = ctx->encryptQuery((char*) plainQuery.data(), len, plainQuery.capacity(), clientPublicKey, clientPrivateKey, clientNonce, false, &encryptedResponseLen, std::make_shared(resolverCert)); @@ -308,9 +307,8 @@ BOOST_AUTO_TEST_CASE(DNSCryptEncryptedQueryInvalidWithWrongKey) { requiredSize = DNSCryptQuery::s_minUDPLength; } - plainQuery.reserve(requiredSize); - uint16_t len = plainQuery.size(); + plainQuery.resize(requiredSize); uint16_t encryptedResponseLen = 0; int res = ctx->encryptQuery((char*) plainQuery.data(), len, plainQuery.capacity(), clientPublicKey, clientPrivateKey, clientNonce, false, &encryptedResponseLen, std::make_shared(resolverCert)); -- 2.47.2