Skip to content

Commit fa2f7d0

Browse files
author
MarcoFalke
committed
fuzz: Avoid unsigned integer overflow in FormatParagraph
1 parent 8ac7997 commit fa2f7d0

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

src/test/fuzz/string.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ FUZZ_TARGET(string)
145145
(void)CopyrightHolders(random_string_1);
146146
FeeEstimateMode fee_estimate_mode;
147147
(void)FeeModeFromString(random_string_1, fee_estimate_mode);
148-
(void)FormatParagraph(random_string_1, fuzzed_data_provider.ConsumeIntegralInRange<size_t>(0, 1000), fuzzed_data_provider.ConsumeIntegralInRange<size_t>(0, 1000));
148+
const auto width{fuzzed_data_provider.ConsumeIntegralInRange<size_t>(1, 1000)};
149+
(void)FormatParagraph(random_string_1, width, fuzzed_data_provider.ConsumeIntegralInRange<size_t>(0, width));
149150
(void)FormatSubVersion(random_string_1, fuzzed_data_provider.ConsumeIntegral<int>(), random_string_vector);
150151
(void)GetDescriptorChecksum(random_string_1);
151152
(void)HelpExampleCli(random_string_1, random_string_2);

src/util/strencodings.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ bool ParseUInt64(const std::string& str, uint64_t* out)
328328

329329
std::string FormatParagraph(const std::string& in, size_t width, size_t indent)
330330
{
331+
assert(width >= indent);
331332
std::stringstream out;
332333
size_t ptr = 0;
333334
size_t indented = 0;

0 commit comments

Comments
 (0)