• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "rspropertymodifier_fuzzer.h"
17 
18 #include <cstddef>
19 #include <cstdint>
20 #include <securec.h>
21 
22 #include "animation/rs_animation.h"
23 #include "transaction/rs_interfaces.h"
24 #include "ui/rs_canvas_node.h"
25 #include "ui/rs_ui_director.h"
26 #include "modifier/rs_property.h"
27 #include "modifier/rs_property_modifier.h"
28 
29 namespace OHOS {
30 namespace Rosen {
31 namespace {
32 const uint8_t* g_data = nullptr;
33 size_t g_size = 0;
34 size_t g_pos;
35 } // namespace
36 
37 /*
38  * describe: get data from outside untrusted data(g_data) which size is according to sizeof(T)
39  * tips: only support basic type
40  */
41 template<class T>
GetData()42 T GetData()
43 {
44     T object {};
45     size_t objectSize = sizeof(object);
46     if (g_data == nullptr || objectSize > g_size - g_pos) {
47         return object;
48     }
49     errno_t ret = memcpy_s(&object, objectSize, g_data + g_pos, objectSize);
50     if (ret != EOK) {
51         return {};
52     }
53     g_pos += objectSize;
54     return object;
55 }
56 
DoModifier001(const uint8_t * data,size_t size)57 bool DoModifier001(const uint8_t* data, size_t size)
58 {
59     if (data == nullptr) {
60         return false;
61     }
62 
63     // initialize
64     g_data = data;
65     g_size = size;
66     g_pos = 0;
67 
68     // test
69     float value = GetData<float>();
70     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
71     auto boundsmodifier = std::make_shared<RSBoundsModifier>(property);
72     boundsmodifier->GetModifierType();
73     boundsmodifier->CreateRenderModifier();
74     auto boundsSizemodifier = std::make_shared<RSBoundsSizeModifier>(property);
75     boundsSizemodifier->GetModifierType();
76     boundsSizemodifier->CreateRenderModifier();
77     auto boundsPositionmodifier = std::make_shared<RSBoundsPositionModifier>(property);
78     boundsPositionmodifier->GetModifierType();
79     boundsPositionmodifier->CreateRenderModifier();
80     auto framemodifier = std::make_shared<RSFrameModifier>(property);
81     framemodifier->GetModifierType();
82     framemodifier->CreateRenderModifier();
83     auto positionZmodifier = std::make_shared<RSPositionZModifier>(property);
84     positionZmodifier->GetModifierType();
85     positionZmodifier->CreateRenderModifier();
86     auto sandBoxmodifier = std::make_shared<RSSandBoxModifier>(property);
87     sandBoxmodifier->GetModifierType();
88     sandBoxmodifier->CreateRenderModifier();
89     auto pivotmodifier = std::make_shared<RSPivotModifier>(property);
90     pivotmodifier->GetModifierType();
91     pivotmodifier->CreateRenderModifier();
92     auto pivotZmodifier = std::make_shared<RSPivotZModifier>(property);
93     pivotZmodifier->GetModifierType();
94     pivotZmodifier->CreateRenderModifier();
95     auto quaternionmodifier = std::make_shared<RSQuaternionModifier>(property);
96     quaternionmodifier->GetModifierType();
97     quaternionmodifier->CreateRenderModifier();
98     auto rotationmodifier = std::make_shared<RSRotationModifier>(property);
99     rotationmodifier->GetModifierType();
100     rotationmodifier->CreateRenderModifier();
101     auto rotationXmodifier = std::make_shared<RSRotationXModifier>(property);
102     rotationXmodifier->GetModifierType();
103     rotationXmodifier->CreateRenderModifier();
104     return true;
105 }
106 
DoModifier002(const uint8_t * data,size_t size)107 bool DoModifier002(const uint8_t* data, size_t size)
108 {
109     if (data == nullptr) {
110         return false;
111     }
112 
113     // initialize
114     g_data = data;
115     g_size = size;
116     g_pos = 0;
117 
118     // test
119     float value = GetData<float>();
120     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
121     auto rotationYmodifier = std::make_shared<RSRotationYModifier>(property);
122     rotationYmodifier->GetModifierType();
123     rotationYmodifier->CreateRenderModifier();
124     auto cameraDistancemodifier = std::make_shared<RSCameraDistanceModifier>(property);
125     cameraDistancemodifier->GetModifierType();
126     cameraDistancemodifier->CreateRenderModifier();
127     auto scalemodifier = std::make_shared<RSScaleModifier>(property);
128     scalemodifier->GetModifierType();
129     scalemodifier->CreateRenderModifier();
130     auto skewmodifier = std::make_shared<RSSkewModifier>(property);
131     skewmodifier->GetModifierType();
132     skewmodifier->CreateRenderModifier();
133     auto perspmodifier = std::make_shared<RSPerspModifier>(property);
134     perspmodifier->GetModifierType();
135     perspmodifier->CreateRenderModifier();
136     auto translatemodifier = std::make_shared<RSTranslateModifier>(property);
137     translatemodifier->GetModifierType();
138     translatemodifier->CreateRenderModifier();
139     auto translateZmodifier = std::make_shared<RSTranslateZModifier>(property);
140     translateZmodifier->GetModifierType();
141     translateZmodifier->CreateRenderModifier();
142     auto cornerRadiusmodifier = std::make_shared<RSCornerRadiusModifier>(property);
143     cornerRadiusmodifier->GetModifierType();
144     cornerRadiusmodifier->CreateRenderModifier();
145     auto alphamodifier = std::make_shared<RSAlphaModifier>(property);
146     alphamodifier->GetModifierType();
147     alphamodifier->CreateRenderModifier();
148     auto alphaOffscreenmodifier = std::make_shared<RSAlphaOffscreenModifier>(property);
149     alphaOffscreenmodifier->GetModifierType();
150     alphaOffscreenmodifier->CreateRenderModifier();
151     auto envForegroundColormodifier = std::make_shared<RSEnvForegroundColorModifier>(property);
152     envForegroundColormodifier->GetModifierType();
153     envForegroundColormodifier->CreateRenderModifier();
154     return true;
155 }
156 
DoModifier003(const uint8_t * data,size_t size)157 bool DoModifier003(const uint8_t* data, size_t size)
158 {
159     if (data == nullptr) {
160         return false;
161     }
162 
163     // initialize
164     g_data = data;
165     g_size = size;
166     g_pos = 0;
167 
168     // test
169     float value = GetData<float>();
170     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
171     auto envForegroundColorStrategymodifier = std::make_shared<RSEnvForegroundColorStrategyModifier>(property);
172     envForegroundColorStrategymodifier->GetModifierType();
173     envForegroundColorStrategymodifier->CreateRenderModifier();
174     auto foregroundColormodifier = std::make_shared<RSForegroundColorModifier>(property);
175     foregroundColormodifier->GetModifierType();
176     foregroundColormodifier->CreateRenderModifier();
177     auto useShadowBatchingmodifier = std::make_shared<RSUseShadowBatchingModifier>(property);
178     useShadowBatchingmodifier->GetModifierType();
179     useShadowBatchingmodifier->CreateRenderModifier();
180     auto backgroundColormodifier = std::make_shared<RSBackgroundColorModifier>(property);
181     backgroundColormodifier->GetModifierType();
182     backgroundColormodifier->CreateRenderModifier();
183     auto backgroundShadermodifier = std::make_shared<RSBackgroundShaderModifier>(property);
184     backgroundShadermodifier->GetModifierType();
185     backgroundShadermodifier->CreateRenderModifier();
186     auto bgImagemodifier = std::make_shared<RSBgImageModifier>(property);
187     bgImagemodifier->GetModifierType();
188     bgImagemodifier->CreateRenderModifier();
189     auto bgImageInnerRectmodifier = std::make_shared<RSBgImageInnerRectModifier>(property);
190     bgImageInnerRectmodifier->GetModifierType();
191     bgImageInnerRectmodifier->CreateRenderModifier();
192     auto bgImageWidthmodifier = std::make_shared<RSBgImageWidthModifier>(property);
193     bgImageWidthmodifier->GetModifierType();
194     bgImageWidthmodifier->CreateRenderModifier();
195     auto bgImageHeightmodifier = std::make_shared<RSBgImageHeightModifier>(property);
196     bgImageHeightmodifier->GetModifierType();
197     bgImageHeightmodifier->CreateRenderModifier();
198     auto bgImagePositionXmodifier = std::make_shared<RSBgImagePositionXModifier>(property);
199     bgImagePositionXmodifier->GetModifierType();
200     bgImagePositionXmodifier->CreateRenderModifier();
201     auto bgImagePositionYmodifier = std::make_shared<RSBgImagePositionYModifier>(property);
202     bgImagePositionYmodifier->GetModifierType();
203     bgImagePositionYmodifier->CreateRenderModifier();
204     return true;
205 }
206 
DoModifier004(const uint8_t * data,size_t size)207 bool DoModifier004(const uint8_t* data, size_t size)
208 {
209     if (data == nullptr) {
210         return false;
211     }
212 
213     // initialize
214     g_data = data;
215     g_size = size;
216     g_pos = 0;
217 
218     // test
219     float value = GetData<float>();
220     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
221     auto borderColormodifier = std::make_shared<RSBorderColorModifier>(property);
222     borderColormodifier->GetModifierType();
223     borderColormodifier->CreateRenderModifier();
224     auto borderWidthmodifier = std::make_shared<RSBorderWidthModifier>(property);
225     borderWidthmodifier->GetModifierType();
226     borderWidthmodifier->CreateRenderModifier();
227     auto borderStylemodifier = std::make_shared<RSBorderStyleModifier>(property);
228     borderStylemodifier->GetModifierType();
229     borderStylemodifier->CreateRenderModifier();
230     auto outlineColormodifier = std::make_shared<RSOutlineColorModifier>(property);
231     outlineColormodifier->GetModifierType();
232     outlineColormodifier->CreateRenderModifier();
233     auto outlineWidthmodifier = std::make_shared<RSOutlineWidthModifier>(property);
234     outlineWidthmodifier->GetModifierType();
235     outlineWidthmodifier->CreateRenderModifier();
236     auto outlineStylemodifier = std::make_shared<RSOutlineStyleModifier>(property);
237     outlineStylemodifier->GetModifierType();
238     outlineStylemodifier->CreateRenderModifier();
239     auto outlineRadiusmodifier = std::make_shared<RSOutlineRadiusModifier>(property);
240     outlineRadiusmodifier->GetModifierType();
241     outlineRadiusmodifier->CreateRenderModifier();
242     auto foregroundEffectRadiusmodifier = std::make_shared<RSForegroundEffectRadiusModifier>(property);
243     foregroundEffectRadiusmodifier->GetModifierType();
244     foregroundEffectRadiusmodifier->CreateRenderModifier();
245     auto filtermodifier = std::make_shared<RSFilterModifier>(property);
246     filtermodifier->GetModifierType();
247     filtermodifier->CreateRenderModifier();
248     auto backgroundBlurRadiusmodifier = std::make_shared<RSBackgroundBlurRadiusModifier>(property);
249     backgroundBlurRadiusmodifier->GetModifierType();
250     backgroundBlurRadiusmodifier->CreateRenderModifier();
251     auto backgroundBlurSaturationmodifier = std::make_shared<RSBackgroundBlurSaturationModifier>(property);
252     backgroundBlurSaturationmodifier->GetModifierType();
253     backgroundBlurSaturationmodifier->CreateRenderModifier();
254     return true;
255 }
256 
DoModifier005(const uint8_t * data,size_t size)257 bool DoModifier005(const uint8_t* data, size_t size)
258 {
259     if (data == nullptr) {
260         return false;
261     }
262 
263     // initialize
264     g_data = data;
265     g_size = size;
266     g_pos = 0;
267 
268     // test
269     float value = GetData<float>();
270     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
271     auto backgroundBlurBrightnessmodifier = std::make_shared<RSBackgroundBlurBrightnessModifier>(property);
272     backgroundBlurBrightnessmodifier->GetModifierType();
273     backgroundBlurBrightnessmodifier->CreateRenderModifier();
274     auto backgroundBlurMaskColormodifier = std::make_shared<RSBackgroundBlurMaskColorModifier>(property);
275     backgroundBlurMaskColormodifier->GetModifierType();
276     backgroundBlurMaskColormodifier->CreateRenderModifier();
277     auto backgroundBlurColorModemodifier = std::make_shared<RSBackgroundBlurColorModeModifier>(property);
278     backgroundBlurColorModemodifier->GetModifierType();
279     backgroundBlurColorModemodifier->CreateRenderModifier();
280     auto backgroundBlurRadiusXmodifier = std::make_shared<RSBackgroundBlurRadiusXModifier>(property);
281     backgroundBlurRadiusXmodifier->GetModifierType();
282     backgroundBlurRadiusXmodifier->CreateRenderModifier();
283     auto backgroundBlurRadiusYmodifier = std::make_shared<RSBackgroundBlurRadiusYModifier>(property);
284     backgroundBlurRadiusYmodifier->GetModifierType();
285     backgroundBlurRadiusYmodifier->CreateRenderModifier();
286     auto foregroundBlurRadiusmodifier = std::make_shared<RSForegroundBlurRadiusModifier>(property);
287     foregroundBlurRadiusmodifier->GetModifierType();
288     foregroundBlurRadiusmodifier->CreateRenderModifier();
289     auto foregroundBlurSaturationmodifier = std::make_shared<RSForegroundBlurSaturationModifier>(property);
290     foregroundBlurSaturationmodifier->GetModifierType();
291     foregroundBlurSaturationmodifier->CreateRenderModifier();
292     auto foregroundBlurBrightnessmodifier = std::make_shared<RSForegroundBlurBrightnessModifier>(property);
293     foregroundBlurBrightnessmodifier->GetModifierType();
294     foregroundBlurBrightnessmodifier->CreateRenderModifier();
295     auto foregroundBlurMaskColormodifier = std::make_shared<RSForegroundBlurMaskColorModifier>(property);
296     foregroundBlurMaskColormodifier->GetModifierType();
297     foregroundBlurMaskColormodifier->CreateRenderModifier();
298     auto foregroundBlurColorModemodifier = std::make_shared<RSForegroundBlurColorModeModifier>(property);
299     foregroundBlurColorModemodifier->GetModifierType();
300     foregroundBlurColorModemodifier->CreateRenderModifier();
301     auto foregroundBlurRadiusXmodifier = std::make_shared<RSForegroundBlurRadiusXModifier>(property);
302     foregroundBlurRadiusXmodifier->GetModifierType();
303     foregroundBlurRadiusXmodifier->CreateRenderModifier();
304     return true;
305 }
306 
DoModifier006(const uint8_t * data,size_t size)307 bool DoModifier006(const uint8_t* data, size_t size)
308 {
309     if (data == nullptr) {
310         return false;
311     }
312 
313     // initialize
314     g_data = data;
315     g_size = size;
316     g_pos = 0;
317 
318     // test
319     float value = GetData<float>();
320     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
321     auto foregroundBlurRadiusYmodifier = std::make_shared<RSForegroundBlurRadiusYModifier>(property);
322     foregroundBlurRadiusYmodifier->GetModifierType();
323     foregroundBlurRadiusYmodifier->CreateRenderModifier();
324     auto lightUpEffectmodifier = std::make_shared<RSLightUpEffectModifier>(property);
325     lightUpEffectmodifier->GetModifierType();
326     lightUpEffectmodifier->CreateRenderModifier();
327     auto dynamicLightUpRatemodifier = std::make_shared<RSDynamicLightUpRateModifier>(property);
328     dynamicLightUpRatemodifier->GetModifierType();
329     dynamicLightUpRatemodifier->CreateRenderModifier();
330     auto dynamicLightUpDegreemodifier = std::make_shared<RSDynamicLightUpDegreeModifier>(property);
331     dynamicLightUpDegreemodifier->GetModifierType();
332     dynamicLightUpDegreemodifier->CreateRenderModifier();
333     auto fgBrightnessParamsmodifier = std::make_shared<RSFgBrightnessRatesModifier>(property);
334     fgBrightnessParamsmodifier->GetModifierType();
335     fgBrightnessParamsmodifier->CreateRenderModifier();
336     auto fgBrightnessFractmodifier = std::make_shared<RSFgBrightnessFractModifier>(property);
337     fgBrightnessFractmodifier->GetModifierType();
338     fgBrightnessFractmodifier->CreateRenderModifier();
339     auto bgBrightnessParamsmodifier = std::make_shared<RSBgBrightnessRatesModifier>(property);
340     bgBrightnessParamsmodifier->GetModifierType();
341     bgBrightnessParamsmodifier->CreateRenderModifier();
342     auto bgBrightnessFractmodifier = std::make_shared<RSBgBrightnessFractModifier>(property);
343     bgBrightnessFractmodifier->GetModifierType();
344     bgBrightnessFractmodifier->CreateRenderModifier();
345     auto emitterUpdatermodifier = std::make_shared<RSEmitterUpdaterModifier>(property);
346     emitterUpdatermodifier->GetModifierType();
347     emitterUpdatermodifier->CreateRenderModifier();
348     auto particleNoiseFieldsmodifier = std::make_shared<RSParticleNoiseFieldsModifier>(property);
349     particleNoiseFieldsmodifier->GetModifierType();
350     particleNoiseFieldsmodifier->CreateRenderModifier();
351     auto dynamicDimDegreemodifier = std::make_shared<RSDynamicDimDegreeModifier>(property);
352     dynamicDimDegreemodifier->GetModifierType();
353     dynamicDimDegreemodifier->CreateRenderModifier();
354     return true;
355 }
356 
DoModifier007(const uint8_t * data,size_t size)357 bool DoModifier007(const uint8_t* data, size_t size)
358 {
359     if (data == nullptr) {
360         return false;
361     }
362 
363     // initialize
364     g_data = data;
365     g_size = size;
366     g_pos = 0;
367 
368     // test
369     float value = GetData<float>();
370     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
371     auto linearGradientBlurParamodifier = std::make_shared<RSLinearGradientBlurParaModifier>(property);
372     linearGradientBlurParamodifier->GetModifierType();
373     linearGradientBlurParamodifier->CreateRenderModifier();
374     auto motionBlurParamodifier = std::make_shared<RSMotionBlurParaModifier>(property);
375     motionBlurParamodifier->GetModifierType();
376     motionBlurParamodifier->CreateRenderModifier();
377     auto backgroundFiltermodifier = std::make_shared<RSBackgroundFilterModifier>(property);
378     backgroundFiltermodifier->GetModifierType();
379     backgroundFiltermodifier->CreateRenderModifier();
380     auto frameGravitymodifier = std::make_shared<RSFrameGravityModifier>(property);
381     frameGravitymodifier->GetModifierType();
382     frameGravitymodifier->CreateRenderModifier();
383     auto clipRRectmodifier = std::make_shared<RSClipRRectModifier>(property);
384     clipRRectmodifier->GetModifierType();
385     clipRRectmodifier->CreateRenderModifier();
386     auto clipBoundsmodifier = std::make_shared<RSClipBoundsModifier>(property);
387     clipBoundsmodifier->GetModifierType();
388     clipBoundsmodifier->CreateRenderModifier();
389     auto clipToBoundsmodifier = std::make_shared<RSClipToBoundsModifier>(property);
390     clipToBoundsmodifier->GetModifierType();
391     clipToBoundsmodifier->CreateRenderModifier();
392     auto clipToFramemodifier = std::make_shared<RSClipToFrameModifier>(property);
393     clipToFramemodifier->GetModifierType();
394     clipToFramemodifier->CreateRenderModifier();
395     auto visiblemodifier = std::make_shared<RSVisibleModifier>(property);
396     visiblemodifier->GetModifierType();
397     visiblemodifier->CreateRenderModifier();
398     auto spherizemodifier = std::make_shared<RSSpherizeModifier>(property);
399     spherizemodifier->GetModifierType();
400     spherizemodifier->CreateRenderModifier();
401     auto shadowColormodifier = std::make_shared<RSShadowColorModifier>(property);
402     shadowColormodifier->GetModifierType();
403     shadowColormodifier->CreateRenderModifier();
404     return true;
405 }
406 
DoModifier008(const uint8_t * data,size_t size)407 bool DoModifier008(const uint8_t* data, size_t size)
408 {
409     if (data == nullptr) {
410         return false;
411     }
412 
413     // initialize
414     g_data = data;
415     g_size = size;
416     g_pos = 0;
417 
418     // test
419     float value = GetData<float>();
420     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
421     auto shadowOffsetXmodifier = std::make_shared<RSShadowOffsetXModifier>(property);
422     shadowOffsetXmodifier->GetModifierType();
423     shadowOffsetXmodifier->CreateRenderModifier();
424     auto shadowOffsetYmodifier = std::make_shared<RSShadowOffsetYModifier>(property);
425     shadowOffsetYmodifier->GetModifierType();
426     shadowOffsetYmodifier->CreateRenderModifier();
427     auto shadowAlphamodifier = std::make_shared<RSShadowAlphaModifier>(property);
428     shadowAlphamodifier->GetModifierType();
429     shadowAlphamodifier->CreateRenderModifier();
430     auto shadowElevationmodifier = std::make_shared<RSShadowElevationModifier>(property);
431     shadowElevationmodifier->GetModifierType();
432     shadowElevationmodifier->CreateRenderModifier();
433     auto shadowRadiusmodifier = std::make_shared<RSShadowRadiusModifier>(property);
434     shadowRadiusmodifier->GetModifierType();
435     shadowRadiusmodifier->CreateRenderModifier();
436     auto shadowPathmodifier = std::make_shared<RSShadowPathModifier>(property);
437     shadowPathmodifier->GetModifierType();
438     shadowPathmodifier->CreateRenderModifier();
439     auto shadowMaskmodifier = std::make_shared<RSShadowMaskModifier>(property);
440     shadowMaskmodifier->GetModifierType();
441     shadowMaskmodifier->CreateRenderModifier();
442     auto shadowIsFilledmodifier = std::make_shared<RSShadowIsFilledModifier>(property);
443     shadowIsFilledmodifier->GetModifierType();
444     shadowIsFilledmodifier->CreateRenderModifier();
445     auto greyCoefmodifier = std::make_shared<RSGreyCoefModifier>(property);
446     greyCoefmodifier->GetModifierType();
447     greyCoefmodifier->CreateRenderModifier();
448     auto maskmodifier = std::make_shared<RSMaskModifier>(property);
449     maskmodifier->GetModifierType();
450     maskmodifier->CreateRenderModifier();
451     auto pixelStretchmodifier = std::make_shared<RSPixelStretchModifier>(property);
452     pixelStretchmodifier->GetModifierType();
453     pixelStretchmodifier->CreateRenderModifier();
454     return true;
455 }
456 
DoModifier009(const uint8_t * data,size_t size)457 bool DoModifier009(const uint8_t* data, size_t size)
458 {
459     if (data == nullptr) {
460         return false;
461     }
462 
463     // initialize
464     g_data = data;
465     g_size = size;
466     g_pos = 0;
467 
468     // test
469     float value = GetData<float>();
470     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
471     auto pixelStretchPercentmodifier = std::make_shared<RSPixelStretchPercentModifier>(property);
472     pixelStretchPercentmodifier->GetModifierType();
473     pixelStretchPercentmodifier->CreateRenderModifier();
474     auto pixelStretchTileModemodifier = std::make_shared<RSPixelStretchTileModeModifier>(property);
475     pixelStretchTileModemodifier->GetModifierType();
476     pixelStretchTileModemodifier->CreateRenderModifier();
477     auto grayScalemodifier = std::make_shared<RSGrayScaleModifier>(property);
478     grayScalemodifier->GetModifierType();
479     grayScalemodifier->CreateRenderModifier();
480     auto lightIntensitymodifier = std::make_shared<RSLightIntensityModifier>(property);
481     lightIntensitymodifier->GetModifierType();
482     lightIntensitymodifier->CreateRenderModifier();
483     auto lightColormodifier = std::make_shared<RSLightColorModifier>(property);
484     lightColormodifier->GetModifierType();
485     lightColormodifier->CreateRenderModifier();
486     auto illuminatedTypemodifier = std::make_shared<RSIlluminatedTypeModifier>(property);
487     illuminatedTypemodifier->GetModifierType();
488     illuminatedTypemodifier->CreateRenderModifier();
489     auto lightPositionmodifier = std::make_shared<RSLightPositionModifier>(property);
490     lightPositionmodifier->GetModifierType();
491     lightPositionmodifier->CreateRenderModifier();
492     auto illuminatedBorderWidthmodifier = std::make_shared<RSIlluminatedBorderWidthModifier>(property);
493     illuminatedBorderWidthmodifier->GetModifierType();
494     illuminatedBorderWidthmodifier->CreateRenderModifier();
495     auto bloommodifier = std::make_shared<RSBloomModifier>(property);
496     bloommodifier->GetModifierType();
497     bloommodifier->CreateRenderModifier();
498     auto brightnessmodifier = std::make_shared<RSBrightnessModifier>(property);
499     brightnessmodifier->GetModifierType();
500     brightnessmodifier->CreateRenderModifier();
501     auto contrastmodifier = std::make_shared<RSContrastModifier>(property);
502     contrastmodifier->GetModifierType();
503     contrastmodifier->CreateRenderModifier();
504     return true;
505 }
506 
DoModifier010(const uint8_t * data,size_t size)507 bool DoModifier010(const uint8_t* data, size_t size)
508 {
509     if (data == nullptr) {
510         return false;
511     }
512 
513     // initialize
514     g_data = data;
515     g_size = size;
516     g_pos = 0;
517 
518     // test
519     float value = GetData<float>();
520     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
521     auto saturatemodifier = std::make_shared<RSSaturateModifier>(property);
522     saturatemodifier->GetModifierType();
523     saturatemodifier->CreateRenderModifier();
524     auto sepiamodifier = std::make_shared<RSSepiaModifier>(property);
525     sepiamodifier->GetModifierType();
526     sepiamodifier->CreateRenderModifier();
527     auto invertmodifier = std::make_shared<RSInvertModifier>(property);
528     invertmodifier->GetModifierType();
529     invertmodifier->CreateRenderModifier();
530     auto aiInvertmodifier = std::make_shared<RSAiInvertModifier>(property);
531     aiInvertmodifier->GetModifierType();
532     aiInvertmodifier->CreateRenderModifier();
533     auto systemBarEffectmodifier = std::make_shared<RSSystemBarEffectModifier>(property);
534     systemBarEffectmodifier->GetModifierType();
535     systemBarEffectmodifier->CreateRenderModifier();
536     auto hueRotatemodifier = std::make_shared<RSHueRotateModifier>(property);
537     hueRotatemodifier->GetModifierType();
538     hueRotatemodifier->CreateRenderModifier();
539     auto colorBlendmodifier = std::make_shared<RSColorBlendModifier>(property);
540     colorBlendmodifier->GetModifierType();
541     colorBlendmodifier->CreateRenderModifier();
542     auto useEffectmodifier = std::make_shared<RSUseEffectModifier>(property);
543     useEffectmodifier->GetModifierType();
544     useEffectmodifier->CreateRenderModifier();
545     auto useEffectTypeModifier = std::make_shared<RSUseEffectTypeModifier>(property);
546     useEffectTypeModifier->GetModifierType();
547     useEffectTypeModifier->CreateRenderModifier();
548     auto colorBlendModemodifier = std::make_shared<RSColorBlendModeModifier>(property);
549     colorBlendModemodifier->GetModifierType();
550     colorBlendModemodifier->CreateRenderModifier();
551     auto colorBlendApplyTypemodifier = std::make_shared<RSColorBlendApplyTypeModifier>(property);
552     colorBlendApplyTypemodifier->GetModifierType();
553     colorBlendApplyTypemodifier->CreateRenderModifier();
554     auto shadowColorStrategymodifier = std::make_shared<RSShadowColorStrategyModifier>(property);
555     shadowColorStrategymodifier->GetModifierType();
556     shadowColorStrategymodifier->CreateRenderModifier();
557     return true;
558 }
559 
DoModifier011(const uint8_t * data,size_t size)560 bool DoModifier011(const uint8_t* data, size_t size)
561 {
562     if (data == nullptr) {
563         return false;
564     }
565 
566     // initialize
567     g_data = data;
568     g_size = size;
569     g_pos = 0;
570 
571     // test
572     float value = GetData<float>();
573     auto property = std::make_shared<RSAnimatableProperty<float>>(value);
574     auto attractionFractionModifier = std::make_shared<RSAttractionFractionModifier>(property);
575     attractionFractionModifier->GetModifierType();
576     attractionFractionModifier->CreateRenderModifier();
577     auto attractionDstPointModifier = std::make_shared<RSAttractionDstPointModifier>(property);
578     attractionDstPointModifier->GetModifierType();
579     attractionDstPointModifier->CreateRenderModifier();
580     auto customClipToFramemodifier = std::make_shared<RSCustomClipToFrameModifier>(property);
581     customClipToFramemodifier->GetModifierType();
582     customClipToFramemodifier->CreateRenderModifier();
583     auto behindWindowFilterRadiusModifier = std::make_shared<RSBehindWindowFilterRadiusModifier>(property);
584     behindWindowFilterRadiusModifier->GetModifierType();
585     behindWindowFilterRadiusModifier->CreateRenderModifier();
586     auto behindWindowFilterSaturationModifier = std::make_shared<RSBehindWindowFilterSaturationModifier>(property);
587     behindWindowFilterSaturationModifier->GetModifierType();
588     behindWindowFilterSaturationModifier->CreateRenderModifier();
589     auto behindWindowFilterBrightnessModifier = std::make_shared<RSBehindWindowFilterBrightnessModifier>(property);
590     behindWindowFilterBrightnessModifier->GetModifierType();
591     behindWindowFilterBrightnessModifier->CreateRenderModifier();
592     auto behindWindowFilterMaskColorModifier = std::make_shared<RSBehindWindowFilterMaskColorModifier>(property);
593     behindWindowFilterMaskColorModifier->GetModifierType();
594     behindWindowFilterMaskColorModifier->CreateRenderModifier();
595     return true;
596 }
597 
598 } // namespace Rosen
599 } // namespace OHOS
600 
601 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)602 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
603 {
604     /* Run your code on data */
605     OHOS::Rosen::DoModifier001(data, size);
606     OHOS::Rosen::DoModifier002(data, size);
607     OHOS::Rosen::DoModifier003(data, size);
608     OHOS::Rosen::DoModifier004(data, size);
609     OHOS::Rosen::DoModifier005(data, size);
610     OHOS::Rosen::DoModifier006(data, size);
611     OHOS::Rosen::DoModifier007(data, size);
612     OHOS::Rosen::DoModifier008(data, size);
613     OHOS::Rosen::DoModifier009(data, size);
614     OHOS::Rosen::DoModifier010(data, size);
615     OHOS::Rosen::DoModifier011(data, size);
616     return 0;
617 }
618 
619