Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fbcf1e99 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add fuzzer for audio attributes tags." into main

parents 6fa21a6a fe1dcf5c
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@

#include "aaudio/AAudio.h"
#include "aaudio/AAudioTesting.h"
#include "system/aaudio/AAudio.h"
#include <fuzzer/FuzzedDataProvider.h>

#include <functional>
@@ -183,6 +184,12 @@ void LibAaudioFuzzer::invokeAAudioSetAPIs(FuzzedDataProvider &fdp){
          fdp.PickValueInArray({AAUDIO_UNSPECIFIED, fdp.ConsumeIntegral<int32_t>()});
  AAudioStreamBuilder_setFramesPerDataCallback(mAaudioBuilder, framesPerDataCallback);

  const size_t tagsNumBytes = fdp.ConsumeIntegralInRange<size_t>(
          0, AAUDIO_ATTRIBUTES_TAGS_MAX_SIZE + 10);
  AAudioStreamBuilder_setTags(mAaudioBuilder,
                              (tagsNumBytes == 0 ? nullptr
                                                 : fdp.ConsumeBytesAsString(tagsNumBytes).c_str()));

  aaudio_policy_t policy =
          fdp.PickValueInArray({fdp.PickValueInArray(kPolicies), fdp.ConsumeIntegral<int32_t>()});
  AAudio_setMMapPolicy(policy);
@@ -193,6 +200,7 @@ void LibAaudioFuzzer::process(const uint8_t *data, size_t size) {
  int32_t maxFrames = 0;
  int32_t count = 0;
  aaudio_stream_state_t state = AAUDIO_STREAM_STATE_UNKNOWN;
  char tags[AAUDIO_ATTRIBUTES_TAGS_MAX_SIZE + 1];

  invokeAAudioSetAPIs(fdp);

@@ -311,6 +319,9 @@ void LibAaudioFuzzer::process(const uint8_t *data, size_t size) {
            [&]() {
                (void)AAudioStream_getBufferSizeInFrames(mAaudioStream);
            },
            [&]() {
                (void)AAudioStream_getTags(mAaudioStream, tags);
            },
            [&]() {
                (void)AAudioStream_isMMapUsed(mAaudioStream);
            },