mirror of
https://github.com/fmtlib/fmt.git
synced 2025-08-03 04:26:33 -04:00
fix buffer overflow on all emphasis flags set (#4498)
This commit is contained in:
parent
553ec11ec0
commit
35dcc58263
@ -430,7 +430,7 @@ template <typename Char> struct ansi_color_escape {
|
||||
|
||||
private:
|
||||
static constexpr size_t num_emphases = 8;
|
||||
Char buffer[7u + 3u * num_emphases + 1u];
|
||||
Char buffer[7u + 4u * num_emphases + 1u];
|
||||
|
||||
static FMT_CONSTEXPR void to_esc(uint8_t c, Char* out,
|
||||
char delimiter) noexcept {
|
||||
|
@ -113,6 +113,15 @@ TEST(color_test, format) {
|
||||
EXPECT_EQ(fmt::format("{}", fmt::styled("bar", fg(fmt::color::blue) |
|
||||
fmt::emphasis::underline)),
|
||||
"\x1b[4m\x1b[38;2;000;000;255mbar\x1b[0m");
|
||||
EXPECT_EQ(
|
||||
fmt::format(
|
||||
"{}", fmt::styled(
|
||||
"all", fmt::emphasis::bold | fmt::emphasis::faint |
|
||||
fmt::emphasis::italic |
|
||||
fmt::emphasis::underline | fmt::emphasis::blink |
|
||||
fmt::emphasis::reverse | fmt::emphasis::conceal |
|
||||
fmt::emphasis::strikethrough)),
|
||||
"\x1b[1m\x1b[2m\x1b[3m\x1b[4m\x1b[5m\x1b[7m\x1b[8m\x1b[9mall\x1b[0m");
|
||||
}
|
||||
|
||||
TEST(color_test, format_to) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user