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

Commit 2281de40 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Adding fuzzers for lib-bt-packet" am: a27ef58d

Change-Id: I2289900f5f3e519d37f396ceed8b2781b944d03f
parents 3f34e285 a27ef58d
Loading
Loading
Loading
Loading
+791 −0
Original line number Diff line number Diff line
cc_fuzz {
    name: "packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],
    srcs: [
        "avrcp_packet_fuzzer.cc",
        "avrcp_browse_packet_fuzzer.cc",
        "change_path_res_fuzzer.cc",
        "change_path_req_fuzzer.cc",
        "get_capabilities_req_fuzzer.cc",
        "get_element_attributes_req_packet_fuzzer.cc",
        "get_element_attributes_res_packet_fuzzer.cc",
        //"get_item_attributes_packet_fuzzer.cc",
        //"get_play_status_packet_fuzzer.cc",
        //"get_total_number_of_items_packet_fuzzer.cc",
        "pass_through_packet_fuzzer.cc",
        "play_item_packet_fuzzer.cc",
        "register_notification_packet_fuzzer.cc",
        "set_absolute_volume_packet_fuzzer.cc",
        "set_addressed_player_packet_fuzzer.cc",
        //"set_browsed_player_packet_fuzzer.cc",
        "vendor_packet_fuzzer.cc",
        "reject_packet_fuzzer.cc",

    ],
    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "avrcp_browse_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],
    srcs: [
        "avrcp_browse_packet_fuzzer.cc",

    ],

    corpus: ["corpus/avrcp_browse_packets_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "change_path_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],
    //system/core/base/include/android-base"
    srcs: [
        "change_path_req_fuzzer.cc",

    ],

    corpus: ["corpus/change_path_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_capabilities_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_capabilities_req_fuzzer.cc",

    ],

    corpus: ["corpus/get_capabilities_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_capabilities_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_capabilities_res_fuzzer.cc",

    ],

    corpus: ["corpus/get_capabilities_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_item_attributes_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_item_attributes_req_fuzzer.cc",

    ],

    corpus: ["corpus/get_item_attributes_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_play_status_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_play_status_req_fuzzer.cc",

    ],

    corpus: ["get_play_status_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_total_number_of_items_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_total_number_of_items_req_fuzzer.cc",

    ],

    corpus: ["corpus/get_total_number_of_items_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "pass_through_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "pass_through_packet_fuzzer.cc",

    ],

    corpus: ["corpus/pass_through_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "play_item_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "play_item_packet_fuzzer.cc",

    ],

    corpus: ["corpus/play_item_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "register_notification_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "register_notification_packet_fuzzer.cc",

    ],

    corpus: ["corpus/register_notification_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "set_absolute_volume_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "set_absolute_volume_packet_fuzzer.cc",

    ],

    corpus: ["corpus/set_absolute_volume_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "set_addressed_player_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "set_addressed_player_packet_fuzzer.cc",

    ],

    corpus: ["corpus/set_addressed_player_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "set_browsed_player_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "set_browsed_player_req_fuzzer.cc",

    ],

    corpus: ["corpus/set_browsed_player_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "vendor_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "vendor_packet_fuzzer.cc",

    ],

    corpus: ["corpus/vendor_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "avrcp_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "avrcp_packet_fuzzer.cc",

    ],

    corpus: ["corpus/avrcp_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "reject_packet_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "reject_packet_fuzzer.cc",

    ],

    corpus: ["corpus/reject_packet_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_element_attributes_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_element_attributes_req_packet_fuzzer.cc",

    ],

    corpus: ["corpus/get_element_attributes_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "change_path_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "change_path_res_fuzzer.cc",

    ],

    corpus: ["corpus/change_path_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_element_attributes_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_element_attributes_res_packet_fuzzer.cc",

    ],

    corpus: ["corpus/get_element_attributes_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_folder_items_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_folder_items_res_fuzzer.cc",

    ],

    corpus: ["corpus/get_folder_items_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_folder_items_req_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_folder_items_req_fuzzer.cc",

    ],

    corpus: ["corpus/get_folder_items_req_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_item_attributes_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_item_attributes_res_fuzzer.cc",

    ],

    corpus: ["corpus/get_item_attributes_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_play_status_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_play_status_res_fuzzer.cc",

    ],

    corpus: ["corpus/get_play_status_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "get_total_number_of_items_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "get_total_number_of_items_res_fuzzer.cc",

    ],

    corpus: ["corpus/get_total_number_of_items_res_corpus/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}

cc_fuzz {
    name: "set_browsed_player_res_fuzzer",
    defaults: ["fluoride_defaults"],
    host_supported: true,

    include_dirs: [
        "packages/modules/Bluetooth/system/",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/packet/include",
        "packages/modules/Bluetooth/system/packet/tests",
        "packages/modules/Bluetooth/system/packet/tests/avrcp",
        "packages/modules/Bluetooth/system/packet/base",
    ],

    srcs: [
        "set_browsed_player_res_fuzzer.cc",

    ],

    corpus: ["corpus/set_browsed_player_res_fuzzer/*"],

    static_libs: [
        "libgmock",
        "lib-bt-packets",
    ],
    cflags: [
        "-DBUILDCFG",
    ],
}
+51 −0
Original line number Diff line number Diff line
/*
 * Copyright 2020 The Android Open Source Project
 *
 * 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.
 */

// Adapted from AVRCP Browse Packet Test

#include <gtest/gtest.h>

#include "avrcp_browse_packet.h"
#include "avrcp_test_packets.h"
#include "packet_test_helper.h"

namespace bluetooth {

namespace avrcp {

using TestBrowsePacket = TestPacketType<BrowsePacket>;

// buildpacket test
extern "C" int LLVMFuzzerTestOneInput(const char* data, size_t size) {
  std::vector<uint8_t> get_folder_items_request;

  // Expected packet size by the library is ~8
  if (size > 10) {
    for (size_t x = 0; x < size; x++) {
      get_folder_items_request.push_back(data[x]);
    }

    auto test_packet = TestBrowsePacket::Make(get_folder_items_request);

    test_packet->GetPdu();
    test_packet->GetLength();
  }

  return 0;
}

}  // namespace avrcp
}  // namespace bluetooth
+87 −0
Original line number Diff line number Diff line
/*
 * Copyright 2020 The Android Open Source Project
 *
 * 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.
 */

// Adapted from avrcp_packet_test.cc
#include <stddef.h>
#include <stdint.h>
#include "avrcp_packet.h"
#include "avrcp_test_packets.h"
#include "packet_test_helper.h"

namespace bluetooth {

// A helper class that has public accessors to protected methods
class TestPacketBuilder : public PacketBuilder {
 public:
  static std::unique_ptr<TestPacketBuilder> MakeBuilder(
      std::vector<uint8_t> data) {
    std::unique_ptr<TestPacketBuilder> builder(new TestPacketBuilder(data));
    return builder;
  }

  // Make all the utility functions public
  using PacketBuilder::AddPayloadOctets1;
  using PacketBuilder::AddPayloadOctets2;
  using PacketBuilder::AddPayloadOctets3;
  using PacketBuilder::AddPayloadOctets4;
  using PacketBuilder::AddPayloadOctets6;
  using PacketBuilder::AddPayloadOctets8;
  using PacketBuilder::ReserveSpace;

  size_t size() const override { return data_.size(); };

  bool Serialize(const std::shared_ptr<Packet>& pkt) override {
    ReserveSpace(pkt, size());

    for (uint8_t byte : data_) {
      AddPayloadOctets1(pkt, byte);
    }

    return true;
  }

  explicit TestPacketBuilder(std::vector<uint8_t> data) : data_(data) {}

  std::vector<uint8_t> data_;
};

namespace avrcp {

using TestAvrcpPacket = TestPacketType<Packet>;

extern "C" int LLVMFuzzerTestOneInput(const char* data, size_t size) {
  std::vector<uint8_t> get_capabilities_request_payload;

  if (size >= 8) {
    get_capabilities_request.push_back(0);
    for (int x = 0; x < 6; x++) {
      get_capabilities_request_payload.push_back(data[x]);
    }

    auto cap_req_builder =
        TestPacketBuilder::MakeBuilder(get_capabilities_request_payload);

    auto builder = PacketBuilder::MakeBuilder(
        CType::STATUS, 0x09, 0x00, Opcode::VENDOR, std::move(cap_req_builder));

    auto test_packet = TestAvrcpPacket::Make();
  }

  return 0;
}

}  // namespace avrcp
}  // namespace bluetooth
+55 −0

File added.

Preview size limit exceeded, changes collapsed.

+47 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading