Use static_cast<unsigned char> on DecodeBase64 to prevent SEGV on negative values (#1051)

This commit is contained in:
Robert Sebastian Herlim
2021-10-21 00:18:08 +09:00
committed by GitHub
parent 1713859b05
commit 2f8997565b
2 changed files with 15 additions and 1 deletions

14
test/binary_test.cpp Normal file
View File

@@ -0,0 +1,14 @@
#include "gtest/gtest.h"
#include <yaml-cpp/binary.h>
TEST(BinaryTest, DecodingSimple) {
std::string input{90, 71, 86, 104, 90, 71, 74, 108, 90, 87, 89, 61};
const std::vector<unsigned char> &result = YAML::DecodeBase64(input);
EXPECT_EQ(std::string(result.begin(), result.end()), "deadbeef");
}
TEST(BinaryTest, DecodingNoCrashOnNegative) {
std::string input{-58, -1, -99, 109};
const std::vector<unsigned char> &result = YAML::DecodeBase64(input);
EXPECT_TRUE(result.empty());
}