From 99bccc0f28f908e562dc62bccecf87759609cc0a Mon Sep 17 00:00:00 2001 From: lijincheng Date: Tue, 9 Jan 2024 17:52:51 +0800 Subject: [PATCH] Fix parcel bugs found in Fuzz test 1.Fix align error in writeBoolVector and writeInt16Vector Issue:https://gitee.com/openharmony/commonlibrary_c_utils/issues/I8UUKA Signed-off-by: lijincheng --- base/src/parcel.cpp | 4 ++-- .../test/fuzztest/parcel_fuzzer/parcel_fuzzer.cpp | 15 --------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/base/src/parcel.cpp b/base/src/parcel.cpp index ec3bb08..14b3b6b 100644 --- a/base/src/parcel.cpp +++ b/base/src/parcel.cpp @@ -1305,7 +1305,7 @@ bool Parcel::WriteFixedAlignVector(const std::vector &originVal, bool (Parce bool Parcel::WriteBoolVector(const std::vector &val) { - return WriteFixedAlignVector(val, &Parcel::WriteBool); + return WriteVector(val, &Parcel::WriteBool); } bool Parcel::WriteInt8Vector(const std::vector &val) @@ -1315,7 +1315,7 @@ bool Parcel::WriteInt8Vector(const std::vector &val) bool Parcel::WriteInt16Vector(const std::vector &val) { - return WriteFixedAlignVector(val, &Parcel::WriteInt16); + return WriteVector(val, &Parcel::WriteInt16); } bool Parcel::WriteInt32Vector(const std::vector &val) diff --git a/base/test/fuzztest/parcel_fuzzer/parcel_fuzzer.cpp b/base/test/fuzztest/parcel_fuzzer/parcel_fuzzer.cpp index 6ebcb7c..bd3322d 100644 --- a/base/test/fuzztest/parcel_fuzzer/parcel_fuzzer.cpp +++ b/base/test/fuzztest/parcel_fuzzer/parcel_fuzzer.cpp @@ -453,21 +453,6 @@ const std::vector> unaligned_o parcel.RewindWrite(bufferSize); }, - [](FuzzedDataProvider* dataProvider, Parcel& parcel) { - FUZZ_LOGI("WriteBoolVector"); - size_t vectorSize = dataProvider->ConsumeIntegralInRange(1, MAX_VECTOR_SIZE); - std::vector data = dataProvider->ConsumeBytes(vectorSize); - if (data.size() > 0) { - std::vector testdata(data.size()); - for (size_t i = 0; i < testdata.size(); i++) { - testdata[i] = 1 & data[i]; - } - parcel.WriteBoolVector(testdata); - } - }, - - PARCEL_WRITE_VECTOR_WITH_BOOL_RETURN(int16_t, WriteInt16Vector), - [](FuzzedDataProvider* dataProvider, Parcel& parcel) { FUZZ_LOGI("WriteBoolUnaligned"); bool booltest = dataProvider->ConsumeBool(); -- Gitee