supressions and jsonvalue fixes

Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
This commit is contained in:
Pratik Mankawde
2026-01-23 16:20:50 +00:00
parent df76002a44
commit b32a5f2c08
4 changed files with 11 additions and 4 deletions

View File

@@ -7,6 +7,7 @@
# - stack-use-after-return errors
# - stack-use-after-scope errors
# - stack-buffer-overflow errors in seemingly unrelated code (e.g., std::chrono::steady_clock::now())
# - stack-buffer-underflow errors in seemingly unrelated code (e.g., xxhasher::retrieveHash(), clock_gettime)
#
# These are suppressed via:
# 1. Runtime option: detect_stack_use_after_return=0 (in ASAN_OPTIONS in CI workflow)

View File

@@ -27,3 +27,8 @@ src:core/JobQueue.cpp
src:libxrpl/beast/utility/beast_Journal.cpp
src:test/beast/beast_PropertyStream_test.cpp
src:src/test/app/Invariants_test.cpp
# Boost coroutines cause false positive stack-buffer-underflow in xxhasher
# This is a known ASAN limitation with stackful coroutines
# See: https://github.com/google/sanitizers/issues/189
src:beast/hash/xxhasher.h

View File

@@ -129,6 +129,7 @@ unsigned-integer-overflow:string_view
# runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'std::size_t' (aka 'unsigned long')
unsigned-integer-overflow:src/libxrpl/basics/base64.cpp
unsigned-integer-overflow:src/libxrpl/basics/Number.cpp
unsigned-integer-overflow:src/libxrpl/basics/Number.h
unsigned-integer-overflow:src/libxrpl/crypto/RFC1751.cpp
unsigned-integer-overflow:rc/libxrpl/json/json_value.cpp
unsigned-integer-overflow:src/libxrpl/ledger/ApplyView.cpp

View File

@@ -198,17 +198,17 @@ Value::Value(ValueType type) : type_(type), allocated_(0)
}
}
Value::Value(Int value) : type_(intValue)
Value::Value(Int value) : type_(intValue), allocated_(0)
{
value_.int_ = value;
}
Value::Value(UInt value) : type_(uintValue)
Value::Value(UInt value) : type_(uintValue), allocated_(0)
{
value_.uint_ = value;
}
Value::Value(double value) : type_(realValue)
Value::Value(double value) : type_(realValue), allocated_(0)
{
value_.real_ = value;
}
@@ -236,7 +236,7 @@ Value::Value(StaticString const& value) : type_(stringValue), allocated_(false)
value_.string_ = const_cast<char*>(value.c_str());
}
Value::Value(bool value) : type_(booleanValue)
Value::Value(bool value) : type_(booleanValue), allocated_(0)
{
value_.bool_ = value;
}