From 6df911753358ce49dab3289ce70aaf40114aadf5 Mon Sep 17 00:00:00 2001 From: zuotao Date: Wed, 6 Aug 2025 11:16:43 +0800 Subject: [PATCH] =?UTF-8?q?fix=20fuzz=E7=94=A8=E4=BE=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zuotao --- test/fuzztest/common/test_template.h | 39 +++++++++++++++++++ .../recordersetaudiochannels_fuzzer.cpp | 7 +++- .../recordersetaudiochannelsnum_fuzzer.cpp | 7 +++- .../recordersetaudioencoder_fuzzer.cpp | 6 ++- ...recordersetaudioencodingbitrate_fuzzer.cpp | 7 +++- .../recordersetaudiosamplerate_fuzzer.cpp | 7 +++- .../recordersetaudiosource_fuzzer.cpp | 7 +++- .../recordersetcapturerate_fuzzer.cpp | 6 ++- .../recordersetdatasource_fuzzer.cpp | 6 ++- .../recordersetfilesplitduration_fuzzer.cpp | 6 ++- .../recordersetorientationhint_fuzzer.cpp | 7 +++- .../recordersetparameter_fuzzer.cpp | 6 ++- .../recordersetvideoencoder_fuzzer.cpp | 6 ++- .../recordersetvideoframerate_fuzzer.cpp | 7 +++- .../recordersetvideosize_fuzzer.cpp | 7 +++- .../recordersetvideosource_fuzzer.cpp | 6 ++- 16 files changed, 114 insertions(+), 23 deletions(-) create mode 100644 test/fuzztest/common/test_template.h diff --git a/test/fuzztest/common/test_template.h b/test/fuzztest/common/test_template.h new file mode 100644 index 000000000..bab4a0e36 --- /dev/null +++ b/test/fuzztest/common/test_template.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FUZZTEST_COMMON_GET_DATA_HPP +#define FUZZTEST_COMMON_GET_DATA_HPP + +#include "securec.h" +namespace OHOS { + inline uint8_t *g_baseFuzzData = nullptr; + inline size_t g_baseFuzzSize = 0; + inline size_t g_baseFuzzPos = 0; + template T GetData() + { + T object{}; + size_t objectSize = sizeof(object); + if(g_base_FuzzData == nullptr || objectSize > (g_baseFuzzSize - g_baseFuzzPos)) { + return object; + } + errno_t ret = memcpy_s(&object, objectSize, g_baseFuzzData + g_baseFuzzPos, objectSize); + if(ret != EOK) { + return {}; + } + g_baseFuzzPos += objectSize; + return object; + } +} +#endif diff --git a/test/fuzztest/recorder_fuzztest/recordersetaudiochannels_fuzzer/recordersetaudiochannels_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetaudiochannels_fuzzer/recordersetaudiochannels_fuzzer.cpp index fa2109d22..ea5b6ff83 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetaudiochannels_fuzzer/recordersetaudiochannels_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetaudiochannels_fuzzer/recordersetaudiochannels_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -56,8 +57,10 @@ bool RecorderSetAudioChannelsFuzzer::FuzzRecorderSetAudioChannels(uint8_t *data, TestRecorder::CameraServicesForVideo(g_videoRecorderConfig); TestRecorder::SetAudioEncoder(g_videoRecorderConfig); TestRecorder::SetAudioSampleRate(g_videoRecorderConfig); - - g_videoRecorderConfig.audioSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.audioSourceId = GetData(); TestRecorder::SetAudioChannels(g_videoRecorderConfig); TestRecorder::SetAudioEncodingBitRate(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetaudiochannelsnum_fuzzer/recordersetaudiochannelsnum_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetaudiochannelsnum_fuzzer/recordersetaudiochannelsnum_fuzzer.cpp index b61bab0ad..99e437a10 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetaudiochannelsnum_fuzzer/recordersetaudiochannelsnum_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetaudiochannelsnum_fuzzer/recordersetaudiochannelsnum_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -56,8 +57,10 @@ bool RecorderSetAudioChannelsNumFuzzer::FuzzRecorderSetAudioChannelsNum(uint8_t TestRecorder::CameraServicesForVideo(g_videoRecorderConfig); TestRecorder::SetAudioEncoder(g_videoRecorderConfig); TestRecorder::SetAudioSampleRate(g_videoRecorderConfig); - - g_videoRecorderConfig.channelCount = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.channelCount = GetData(); TestRecorder::SetAudioChannels(g_videoRecorderConfig); TestRecorder::SetAudioEncodingBitRate(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetaudioencoder_fuzzer/recordersetaudioencoder_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetaudioencoder_fuzzer/recordersetaudioencoder_fuzzer.cpp index 86ac0e725..cc9bc2a6e 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetaudioencoder_fuzzer/recordersetaudioencoder_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetaudioencoder_fuzzer/recordersetaudioencoder_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -63,7 +64,10 @@ bool RecorderSetAudioEncoderFuzzer::FuzzRecorderSetAudioEncoder(uint8_t *data, s AAC_LC, AUDIO_CODEC_FORMAT_BUTT, }; - int32_t audioFormat = *reinterpret_cast(data) % (audioCodecFormatList); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + int32_t audioFormat = GetData() % (audioCodecFormatList); g_videoRecorderConfig.audioFormat = audioCodecFormat[audioFormat]; TestRecorder::SetAudioEncoder(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetaudioencodingbitrate_fuzzer/recordersetaudioencodingbitrate_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetaudioencodingbitrate_fuzzer/recordersetaudioencodingbitrate_fuzzer.cpp index cc012571d..08086ea1c 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetaudioencodingbitrate_fuzzer/recordersetaudioencodingbitrate_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetaudioencodingbitrate_fuzzer/recordersetaudioencodingbitrate_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -59,8 +60,10 @@ bool RecorderSetAudioEncodingBitRateFuzzer::FuzzRecorderSetAudioEncodingBitRate( TestRecorder::SetAudioEncoder(g_videoRecorderConfig); TestRecorder::SetAudioSampleRate(g_videoRecorderConfig); TestRecorder::SetAudioChannels(g_videoRecorderConfig); - - g_videoRecorderConfig.audioSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.audioSourceId = GetData(); TestRecorder::SetAudioEncodingBitRate(g_videoRecorderConfig); TestRecorder::SetMaxDuration(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetaudiosamplerate_fuzzer/recordersetaudiosamplerate_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetaudiosamplerate_fuzzer/recordersetaudiosamplerate_fuzzer.cpp index 773a41228..dbba8c068 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetaudiosamplerate_fuzzer/recordersetaudiosamplerate_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetaudiosamplerate_fuzzer/recordersetaudiosamplerate_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -56,8 +57,10 @@ bool RecorderSetAudioSampleRateFuzzer::FuzzRecorderSetAudioSampleRatee(uint8_t * TestRecorder::SetVideoFrameRate(g_videoRecorderConfig); TestRecorder::SetVideoEncodingBitRate(g_videoRecorderConfig); TestRecorder::SetAudioEncoder(g_videoRecorderConfig); - - g_videoRecorderConfig.audioSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.audioSourceId = GetData(); TestRecorder::SetAudioSampleRate(g_videoRecorderConfig); TestRecorder::SetAudioChannels(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetaudiosource_fuzzer/recordersetaudiosource_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetaudiosource_fuzzer/recordersetaudiosource_fuzzer.cpp index 014fabba1..847ffb2a2 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetaudiosource_fuzzer/recordersetaudiosource_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetaudiosource_fuzzer/recordersetaudiosource_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -52,8 +53,10 @@ bool RecorderSetAudioSourceFuzzer::FuzzRecorderSetAudioSource(uint8_t *data, siz AUDIO_SOURCE_DEFAULT, AUDIO_MIC, }; - - int32_t sourcesubscript = *reinterpret_cast(data) % (audioSourceTypesList); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + int32_t sourcesubscript = GetData() % (audioSourceTypesList); g_videoRecorderConfig.aSource = AudioSourceType[sourcesubscript]; diff --git a/test/fuzztest/recorder_fuzztest/recordersetcapturerate_fuzzer/recordersetcapturerate_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetcapturerate_fuzzer/recordersetcapturerate_fuzzer.cpp index 119e8c0ce..75e6f0bc4 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetcapturerate_fuzzer/recordersetcapturerate_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetcapturerate_fuzzer/recordersetcapturerate_fuzzer.cpp @@ -20,6 +20,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -51,7 +52,10 @@ bool RecorderSetCaptureRateFuzzer::FuzzRecorderSetCaptureRate(uint8_t *data, siz TestRecorder::SetVideoSource(g_videoRecorderConfig); TestRecorder::SetOutputFormat(g_videoRecorderConfig); TestRecorder::CameraServicesForVideo(g_videoRecorderConfig); - TestRecorder::SetCaptureRate(g_videoRecorderConfig, *reinterpret_cast(data)); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + TestRecorder::SetCaptureRate(g_videoRecorderConfig, GetData()); TestRecorder::SetMaxFileSize(audioMaxFileSize, g_videoRecorderConfig); TestRecorder::SetNextOutputFile(g_videoRecorderConfig); } diff --git a/test/fuzztest/recorder_fuzztest/recordersetdatasource_fuzzer/recordersetdatasource_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetdatasource_fuzzer/recordersetdatasource_fuzzer.cpp index 73b8f9303..fc31b0b15 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetdatasource_fuzzer/recordersetdatasource_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetdatasource_fuzzer/recordersetdatasource_fuzzer.cpp @@ -20,6 +20,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -52,7 +53,10 @@ bool RecorderSetDataSourceFuzzer::FuzzRecorderSetDataSource(uint8_t *data, size_ int32_t reproducibleRandom = abs((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3])); int32_t sourcesubscript = (reproducibleRandom) % (videoSourceTypeList); g_videoRecorderConfig.vSource = VideoSourceTypes[sourcesubscript]; - g_videoRecorderConfig.videoSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.videoSourceId = GetData(); g_videoRecorderConfig.videoFormat = MPEG4; g_videoRecorderConfig.outputFd = open("/data/test/media/recorder_SetDataSource.mp4", O_RDWR); diff --git a/test/fuzztest/recorder_fuzztest/recordersetfilesplitduration_fuzzer/recordersetfilesplitduration_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetfilesplitduration_fuzzer/recordersetfilesplitduration_fuzzer.cpp index 802beba72..5b9124cb2 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetfilesplitduration_fuzzer/recordersetfilesplitduration_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetfilesplitduration_fuzzer/recordersetfilesplitduration_fuzzer.cpp @@ -20,6 +20,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -69,7 +70,10 @@ bool RecorderSetFileSplitDurationFuzzer::FuzzRecorderSetFileSplitDuration(uint8_ FileSplitType::FILE_SPLIT_NORMAL, FileSplitType::FILE_SPLIT_BUTT, }; - int32_t indexValue = *reinterpret_cast(data) % (fileSplitTypeList); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + int32_t indexValue = GetData() % (fileSplitTypeList); TestRecorder::SetFileSplitDuration(fileSplitType[indexValue], timestampValue, durationValue, g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetorientationhint_fuzzer/recordersetorientationhint_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetorientationhint_fuzzer/recordersetorientationhint_fuzzer.cpp index d724933f7..02eb7939f 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetorientationhint_fuzzer/recordersetorientationhint_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetorientationhint_fuzzer/recordersetorientationhint_fuzzer.cpp @@ -20,6 +20,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -52,8 +53,10 @@ bool RecorderSetOrientationHintFuzzer::FuzzRecorderSetOrientationHint(uint8_t *d TestRecorder::SetOutputFormat(g_videoRecorderConfig); TestRecorder::CameraServicesForVideo(g_videoRecorderConfig); recorder->SetLocation(0.0, 0); - - int32_t rotationValue = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + int32_t rotationValue = GetData(); recorder->SetOrientationHint(rotationValue); TestRecorder::Prepare(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetparameter_fuzzer/recordersetparameter_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetparameter_fuzzer/recordersetparameter_fuzzer.cpp index 20498bd4a..5be70c45f 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetparameter_fuzzer/recordersetparameter_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetparameter_fuzzer/recordersetparameter_fuzzer.cpp @@ -22,6 +22,7 @@ #include "directory_ex.h" #include "player.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -57,7 +58,10 @@ bool RecorderSetParameterFuzzer::FuzzRecorderSetParameter(uint8_t *data, size_t TestRecorder::SetRecorderCallback(g_videoRecorderConfig); Format format; - int32_t intValue = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + int32_t intValue = GetData(); format.PutIntValue("video_scale_type", intValue); TestRecorder::SetParameter(g_videoRecorderConfig.dataSourceId, format, g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetvideoencoder_fuzzer/recordersetvideoencoder_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetvideoencoder_fuzzer/recordersetvideoencoder_fuzzer.cpp index 61dcb4f89..d4dd2c10e 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetvideoencoder_fuzzer/recordersetvideoencoder_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetvideoencoder_fuzzer/recordersetvideoencoder_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -59,7 +60,10 @@ bool RecorderSetVideoEncoderFuzzer::RecorderSetVideoEncoderFuzz(uint8_t *data, s MPEG4, VIDEO_CODEC_FORMAT_BUTT, }; - g_videoRecorderConfig.videoSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.videoSourceId = GetData(); int32_t reproducibleRandom = abs((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3])); int32_t videoFormat = (reproducibleRandom) % (videoCodecFormatList); g_videoRecorderConfig.videoFormat = videoCodecFormats[videoFormat]; diff --git a/test/fuzztest/recorder_fuzztest/recordersetvideoframerate_fuzzer/recordersetvideoframerate_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetvideoframerate_fuzzer/recordersetvideoframerate_fuzzer.cpp index bc8f12f70..f10671f9f 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetvideoframerate_fuzzer/recordersetvideoframerate_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetvideoframerate_fuzzer/recordersetvideoframerate_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -53,8 +54,10 @@ bool RecorderSetVideoFrameRateFuzzer::RecorderSetVideoFrameRateFuzz(uint8_t *dat TestRecorder::SetOutputFormat(g_videoRecorderConfig); TestRecorder::SetVideoEncoder(g_videoRecorderConfig); TestRecorder::SetVideoSize(g_videoRecorderConfig); - - g_videoRecorderConfig.videoSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.videoSourceId = GetData(); TestRecorder::SetVideoFrameRate(g_videoRecorderConfig); TestRecorder::SetVideoEncodingBitRate(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetvideosize_fuzzer/recordersetvideosize_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetvideosize_fuzzer/recordersetvideosize_fuzzer.cpp index 0e29fd908..35a4d2165 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetvideosize_fuzzer/recordersetvideosize_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetvideosize_fuzzer/recordersetvideosize_fuzzer.cpp @@ -21,6 +21,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -52,8 +53,10 @@ bool RecorderSetVideoSizeFuzzer::RecorderSetVideoSizeFuzz(uint8_t *data, size_t TestRecorder::SetVideoSource(g_videoRecorderConfig); TestRecorder::SetOutputFormat(g_videoRecorderConfig); TestRecorder::SetVideoEncoder(g_videoRecorderConfig); - - g_videoRecorderConfig.videoSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.videoSourceId = GetData(); TestRecorder::SetVideoSize(g_videoRecorderConfig); TestRecorder::SetVideoFrameRate(g_videoRecorderConfig); diff --git a/test/fuzztest/recorder_fuzztest/recordersetvideosource_fuzzer/recordersetvideosource_fuzzer.cpp b/test/fuzztest/recorder_fuzztest/recordersetvideosource_fuzzer/recordersetvideosource_fuzzer.cpp index b3b6a2e69..3224da267 100644 --- a/test/fuzztest/recorder_fuzztest/recordersetvideosource_fuzzer/recordersetvideosource_fuzzer.cpp +++ b/test/fuzztest/recorder_fuzztest/recordersetvideosource_fuzzer/recordersetvideosource_fuzzer.cpp @@ -20,6 +20,7 @@ #include "media_errors.h" #include "directory_ex.h" #include "recorder.h" +#include "test_template.h" using namespace std; using namespace OHOS; @@ -52,7 +53,10 @@ bool RecorderSetVideoSourceFuzzer::FuzzRecorderSetVideoSource(uint8_t *data, siz int32_t reproducibleRandom = abs((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3])); int32_t sourcesubscript = (reproducibleRandom) % (videoSourceTypeList); g_videoRecorderConfig.vSource = VideoSourceTypes[sourcesubscript]; - g_videoRecorderConfig.videoSourceId = *reinterpret_cast(data); + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + g_videoRecorderConfig.videoSourceId = GetData(); g_videoRecorderConfig.videoFormat = MPEG4; g_videoRecorderConfig.outputFd = open("/data/test/media/recorder_SetVideoSource.mp4", O_RDWR); -- Gitee