You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by sw...@apache.org on 2025/02/22 06:09:53 UTC

(logging-log4cxx) 01/01: Prevent timeout fault running PatternLauoutFuzzer

This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch prevent_pattern_layout_fuzz_timeout
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git

commit 3a30f0bec0a712c04463c61262897711652ba3e1
Author: Stephen Webb <sw...@gmail.com>
AuthorDate: Sat Feb 22 17:09:26 2025 +1100

    Prevent timeout fault running PatternLauoutFuzzer
---
 src/fuzzers/cpp/PatternParserFuzzer.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/fuzzers/cpp/PatternParserFuzzer.cpp b/src/fuzzers/cpp/PatternParserFuzzer.cpp
index edbf8684..4b1f2865 100644
--- a/src/fuzzers/cpp/PatternParserFuzzer.cpp
+++ b/src/fuzzers/cpp/PatternParserFuzzer.cpp
@@ -43,6 +43,12 @@
 #include <log4cxx/pattern/throwableinformationpatternconverter.h>
 #include <log4cxx/pattern/threadusernamepatternconverter.h>
 
+namespace
+{
+    const int MaximumLoggerNameByteCount = 100;
+    const int MaximumMessageByteCount = 10000;
+    const int MaximumPatternByteCount = 10000;
+}
 using namespace log4cxx;
 using namespace log4cxx::helpers;
 using namespace log4cxx::spi;
@@ -107,9 +113,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
 	// will use to create strings from "data".
 	FuzzedDataProvider fdp(data, size);
 	
-	std::string loggerStr = fdp.ConsumeRandomLengthString();
-	std::string content = fdp.ConsumeRandomLengthString();
-	std::string pattern = fdp.ConsumeRandomLengthString();
+	std::string loggerStr = fdp.ConsumeRandomLengthString(MaximumLoggerNameByteCount);
+	std::string content = fdp.ConsumeRandomLengthString(MaximumMessageByteCount);
+	std::string pattern = fdp.ConsumeRandomLengthString(MaximumPatternByteCount);
 
 	LogString contentLogString;
 	LogString loggerLogString;