From: Otto Moerbeek Date: Fri, 8 Jan 2021 12:51:19 +0000 (+0100) Subject: Appease clang++ 12 asan on MacOS X-Git-Tag: rec-4.5.0-alpha1~26^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F9925%2Fhead;p=thirdparty%2Fpdns.git 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. --- 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));