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

Commit 4d37cd98 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Codec2Fuzzer: Updated BufferSource parsing logic"

parents 86cba9a1 e8161a15
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -148,9 +148,8 @@ bool Codec2Fuzzer::initDecoder() {
  std::vector<std::tuple<C2String, C2ComponentFactory::CreateCodec2FactoryFunc,
        C2ComponentFactory::DestroyCodec2FactoryFunc>> codec2FactoryFunc;

  codec2FactoryFunc.emplace_back(std::make_tuple(C2COMPONENTNAME,
                                                &CreateCodec2Factory,
                                                &DestroyCodec2Factory));
  codec2FactoryFunc.emplace_back(
      std::make_tuple(C2COMPONENTNAME, &CreateCodec2Factory, &DestroyCodec2Factory));

  std::shared_ptr<C2ComponentStore> componentStore = GetTestComponentStore(codec2FactoryFunc);
  if (!componentStore) {
+15 −4
Original line number Diff line number Diff line
@@ -59,8 +59,9 @@ class Codec2Fuzzer {
 private:
  class BufferSource {
   public:
    BufferSource(const uint8_t* data, size_t size)
        : mData(data), mSize(size), mReadIndex(size - kMarkerSize) {}
    BufferSource(const uint8_t* data, size_t size) : mData(data), mSize(size) {
      mReadIndex = (size <= kMarkerSize) ? 0 : (size - kMarkerSize);
    }
    ~BufferSource() {
      mData = nullptr;
      mSize = 0;
@@ -72,10 +73,20 @@ class Codec2Fuzzer {
    FrameData getFrame();

   private:
    bool isMarker() { return (memcmp(&mData[mReadIndex], kMarker, kMarkerSize) == 0); }
    bool isMarker() {
      if ((kMarkerSize < mSize) && (mReadIndex < mSize - kMarkerSize)) {
        return (memcmp(&mData[mReadIndex], kMarker, kMarkerSize) == 0);
      } else {
        return false;
      }
    }

    bool isCSDMarker(size_t position) {
      if ((kMarkerSuffixSize < mSize) && (position < mSize - kMarkerSuffixSize)) {
        return (memcmp(&mData[position], kCsdMarkerSuffix, kMarkerSuffixSize) == 0);
      } else {
        return false;
      }
    }

    bool searchForMarker();