address comment

Signed-off-by: Asra Ali <asraa@google.com>
This commit is contained in:
Asra Ali 2020-04-29 10:32:03 -04:00
parent 3fae95b87f
commit 4d65be44d2
5 changed files with 6 additions and 5 deletions

View File

@ -308,6 +308,7 @@ endif ()
# Control fuzzing independent of the unit tests. # Control fuzzing independent of the unit tests.
if (FMT_FUZZ) if (FMT_FUZZ)
add_subdirectory(test/fuzzing) add_subdirectory(test/fuzzing)
target_compile_definitions(fmt PUBLIC FMT_FUZZ)
endif () endif ()
set(gitignore ${PROJECT_SOURCE_DIR}/.gitignore) set(gitignore ${PROJECT_SOURCE_DIR}/.gitignore)

View File

@ -1151,7 +1151,7 @@ int snprintf_float(T value, int precision, float_specs specs,
for (;;) { for (;;) {
auto begin = buf.data() + offset; auto begin = buf.data() + offset;
auto capacity = buf.capacity() - offset; auto capacity = buf.capacity() - offset;
#if FMT_FUZZ #ifdef FMT_FUZZ
if (precision > 100000) if (precision > 100000)
throw std::runtime_error( throw std::runtime_error(
"fuzz mode - avoid large allocation inside snprintf"); "fuzz mode - avoid large allocation inside snprintf");

View File

@ -699,7 +699,7 @@ class basic_memory_buffer : public internal::buffer<T> {
template <typename T, std::size_t SIZE, typename Allocator> template <typename T, std::size_t SIZE, typename Allocator>
void basic_memory_buffer<T, SIZE, Allocator>::grow(std::size_t size) { void basic_memory_buffer<T, SIZE, Allocator>::grow(std::size_t size) {
#if FMT_FUZZ #ifdef FMT_FUZZ
if (size > 1000) throw std::runtime_error("fuzz mode - won't grow that much"); if (size > 1000) throw std::runtime_error("fuzz mode - won't grow that much");
#endif #endif
std::size_t old_capacity = this->capacity(); std::size_t old_capacity = this->capacity();
@ -1136,7 +1136,7 @@ template <typename Char> class float_writer {
*it++ = static_cast<Char>('0'); *it++ = static_cast<Char>('0');
return it; return it;
} }
#if FMT_FUZZ #ifdef FMT_FUZZ
if (num_zeros > 1000) if (num_zeros > 1000)
throw std::runtime_error("fuzz mode - avoiding excessive cpu use"); throw std::runtime_error("fuzz mode - avoiding excessive cpu use");
#endif #endif

View File

@ -13,7 +13,7 @@ namespace internal {
template <typename T> template <typename T>
int format_float(char* buf, std::size_t size, const char* format, int precision, int format_float(char* buf, std::size_t size, const char* format, int precision,
T value) { T value) {
#if FMT_FUZZ #ifdef FMT_FUZZ
if (precision > 100000) if (precision > 100000)
throw std::runtime_error( throw std::runtime_error(
"fuzz mode - avoid large allocation inside snprintf"); "fuzz mode - avoid large allocation inside snprintf");

View File

@ -7,7 +7,7 @@ in fmt. It is a part of the continous fuzzing at
The source code is modified to make the fuzzing possible without locking up on The source code is modified to make the fuzzing possible without locking up on
resource exhaustion: resource exhaustion:
```cpp ```cpp
#if FMT_FUZZ #ifdef FMT_FUZZ
if(spec.precision>100000) { if(spec.precision>100000) {
throw std::runtime_error("fuzz mode - avoiding large precision"); throw std::runtime_error("fuzz mode - avoiding large precision");
} }