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

Commit 91470c0d authored by Chris Manton's avatar Chris Manton
Browse files

stack::sdp fuzzer: Explicitly ignore return values

Bug: 339304745
Test: m .
Flag: EXEMPT, Test Infrastructure

Change-Id: I5fcd6cc763dbfc27a2f6a32ea0fe92caa79e4de7
parent ececa1ab
Loading
Loading
Loading
Loading
+96 −70
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>

        // ::SDP_CancelServiceSearch
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->service.SDP_CancelServiceSearch(
                  getArbitraryVectorElement(fdp, sdp_db_vect, true).get());
        },
@@ -81,6 +82,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          tSDP_DISCOVERY_DB* db =
              getArbitraryVectorElement(fdp, sdp_db_vect, false).get();
          if (db) {
            [[maybe_unused]] bool rc =
                get_legacy_stack_sdp_api()->service.SDP_ServiceSearchRequest(
                    bd_addr, db, &sdp_disc_cmpl_cb);
          }
@@ -92,9 +94,10 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          tSDP_DISCOVERY_DB* db =
              getArbitraryVectorElement(fdp, sdp_db_vect, false).get();
          if (db) {
            [[maybe_unused]] bool rc =
                get_legacy_stack_sdp_api()
                ->service.SDP_ServiceSearchAttributeRequest(bd_addr, db,
                                                            &sdp_disc_cmpl_cb);
                    ->service.SDP_ServiceSearchAttributeRequest(
                        bd_addr, db, &sdp_disc_cmpl_cb);
          }
        },

@@ -107,6 +110,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
              getArbitraryVectorElement(fdp, sdp_db_vect, false).get();

          if (db) {
            [[maybe_unused]] bool rc =
                get_legacy_stack_sdp_api()
                    ->service.SDP_ServiceSearchAttributeRequest2(
                        bd_addr, db, &sdp_disc_cmpl_cb2, user_data.data());
@@ -117,12 +121,14 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
        [](FuzzedDataProvider* fdp) -> void {
          tSDP_DISC_REC* p_rec =
              generateArbitrarySdpDiscRecord(fdp, false).get();
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->record.SDP_FindAttributeInRec(
                  p_rec, fdp->ConsumeIntegral<uint16_t>());
        },

        // ::SDP_FindServiceInDb
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->db.SDP_FindServiceInDb(
                  getArbitraryVectorElement(fdp, sdp_db_vect, true).get(),
                  fdp->ConsumeIntegral<uint16_t>(),
@@ -132,6 +138,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
        // ::SDP_FindServiceUUIDInDb
        [](FuzzedDataProvider* fdp) -> void {
          const bluetooth::Uuid uuid = generateArbitraryUuid(fdp);
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->db.SDP_FindServiceUUIDInDb(
                  getArbitraryVectorElement(fdp, sdp_db_vect, true).get(), uuid,
                  generateArbitrarySdpDiscRecord(fdp, true).get());
@@ -142,12 +149,14 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          bluetooth::Uuid uuid = generateArbitraryUuid(fdp);
          tSDP_DISC_REC* p_rec =
              generateArbitrarySdpDiscRecord(fdp, false).get();
          get_legacy_stack_sdp_api()->record.SDP_FindServiceUUIDInRec_128bit(
              p_rec, &uuid);
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()
                  ->record.SDP_FindServiceUUIDInRec_128bit(p_rec, &uuid);
        },

        // ::SDP_FindServiceInDb_128bit
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->db.SDP_FindServiceInDb_128bit(
                  getArbitraryVectorElement(fdp, sdp_db_vect, true).get(),
                  generateArbitrarySdpDiscRecord(fdp, true).get());
@@ -158,6 +167,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          tSDP_PROTOCOL_ELEM elem = generateArbitrarySdpProtocolElements(fdp);
          tSDP_DISC_REC* p_rec =
              generateArbitrarySdpDiscRecord(fdp, false).get();
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->record.SDP_FindProtocolListElemInRec(
                  p_rec, fdp->ConsumeIntegral<uint16_t>(), &elem);
        },
@@ -168,6 +178,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          tSDP_DISC_REC* p_rec =
              generateArbitrarySdpDiscRecord(fdp, false).get();

          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->record.SDP_FindProfileVersionInRec(
                  p_rec, fdp->ConsumeIntegral<uint16_t>(), &p_version);
        },
@@ -183,6 +194,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>

        // ::SDP_DeleteRecord
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->handle.SDP_DeleteRecord(
                  getArbitraryVectorElement(fdp, sdp_record_handles, true));
        },
@@ -192,6 +204,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          std::vector<uint8_t> val = fdp->ConsumeBytes<uint8_t>(
              fdp->ConsumeIntegralInRange<size_t>(1, 1024));
          if (val.size() > 0) {
            [[maybe_unused]] bool rc =
                get_legacy_stack_sdp_api()->handle.SDP_AddAttribute(
                    getArbitraryVectorElement(fdp, sdp_record_handles, true),
                    fdp->ConsumeIntegral<uint16_t>(),
@@ -203,10 +216,11 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
        [](FuzzedDataProvider* fdp) -> void {
          SDP_Sequence_Helper seq = generateArbitrarySdpElemSequence(fdp);

          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->handle.SDP_AddSequence(
                  getArbitraryVectorElement(fdp, sdp_record_handles, true),
              fdp->ConsumeIntegral<uint16_t>(), seq.num_elem, seq.type.get(),
              seq.len.get(), seq.p_val.get());
                  fdp->ConsumeIntegral<uint16_t>(), seq.num_elem,
                  seq.type.get(), seq.len.get(), seq.p_val.get());
        },

        // ::SDP_AddUuidSequence
@@ -217,6 +231,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
            uuids[i] = fdp->ConsumeIntegral<uint16_t>();
          }

          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->handle.SDP_AddUuidSequence(
                  getArbitraryVectorElement(fdp, sdp_record_handles, true),
                  fdp->ConsumeIntegral<uint16_t>(), num_uuids, uuids);
@@ -228,9 +243,11 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          std::shared_ptr<tSDP_PROTO_LIST_ELEM> p_proto_list =
              generateArbitrarySdpProtocolElementList(fdp);
          if (p_proto_list) {
            [[maybe_unused]] bool rc =
                get_legacy_stack_sdp_api()->handle.SDP_AddProtocolList(
                    getArbitraryVectorElement(fdp, sdp_record_handles, true),
                p_proto_list.get()->num_elems, p_proto_list.get()->list_elem);
                    p_proto_list.get()->num_elems,
                    p_proto_list.get()->list_elem);
          }
        },

@@ -241,6 +258,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
              generateArbitrarySdpProtocolElementListArray(fdp, &arr_size);
          if (p_proto_list) {
            if (p_proto_list[0]) {
              [[maybe_unused]] bool rc =
                  get_legacy_stack_sdp_api()->handle.SDP_AddAdditionProtoLists(
                      getArbitraryVectorElement(fdp, sdp_record_handles, true),
                      arr_size, p_proto_list[0]);
@@ -254,6 +272,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>

        // ::SDP_AddProfileDescriptorList
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->handle.SDP_AddProfileDescriptorList(
                  getArbitraryVectorElement(fdp, sdp_record_handles, true),
                  fdp->ConsumeIntegral<uint16_t>(),
@@ -262,6 +281,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>

        // ::SDP_AddLanguageBaseAttrIDList
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->handle.SDP_AddLanguageBaseAttrIDList(
                  getArbitraryVectorElement(fdp, sdp_record_handles, true),
                  fdp->ConsumeIntegral<uint16_t>(),
@@ -277,6 +297,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
            service_uuids[i] = fdp->ConsumeIntegral<uint16_t>();
          }

          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->handle.SDP_AddServiceClassIdList(
                  getArbitraryVectorElement(fdp, sdp_record_handles, true),
                  num_services, service_uuids);
@@ -288,6 +309,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
        [](FuzzedDataProvider* fdp) -> void {
          uint32_t handle;  // Output var
          tSDP_DI_RECORD device_info = generateArbitrarySdpDiRecord(fdp);
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->device_id.SDP_SetLocalDiRecord(
                  &device_info, &handle);
        },
@@ -302,6 +324,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          std::shared_ptr<tSDP_DISCOVERY_DB> p_db(
              reinterpret_cast<tSDP_DISCOVERY_DB*>(malloc(db_size)), free);
          if (p_db) {
            [[maybe_unused]] bool rc =
                get_legacy_stack_sdp_api()->device_id.SDP_DiDiscover(
                    remote_device, p_db.get(), db_size, &sdp_disc_cmpl_cb);
          }
@@ -309,6 +332,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>

        // ::SDP_GetNumDiRecords
        [](FuzzedDataProvider* fdp) -> void {
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->device_id.SDP_GetNumDiRecords(
                  getArbitraryVectorElement(fdp, sdp_db_vect, true).get());
        },
@@ -316,6 +340,7 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
        // ::SDP_GetDiRecord
        [](FuzzedDataProvider* fdp) -> void {
          tSDP_DI_GET_RECORD device_info;  // Output var
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->device_id.SDP_GetDiRecord(
                  fdp->ConsumeIntegral<uint8_t>(), &device_info,
                  getArbitraryVectorElement(fdp, sdp_db_vect, true).get());
@@ -326,8 +351,9 @@ static const std::vector<std::function<void(FuzzedDataProvider*)>>
          tSDP_DISC_REC* p_rec =
              generateArbitrarySdpDiscRecord(fdp, false).get();
          bluetooth::Uuid uuid;  // Output var
          get_legacy_stack_sdp_api()->record.SDP_FindServiceUUIDInRec(p_rec,
                                                                      &uuid);
          [[maybe_unused]] bool rc =
              get_legacy_stack_sdp_api()->record.SDP_FindServiceUUIDInRec(
                  p_rec, &uuid);
        }};

#endif  // FUZZER_SDP_FUNCTIONS_H_
+2 −1
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ void cleanupSdpFuzz() {
  sdp_protolist_elem_vect.clear();

  // Delete all records
  [[maybe_unused]] bool rc =
      get_legacy_stack_sdp_api()->handle.SDP_DeleteRecord(0);
  sdp_record_handles.clear();