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

Commit c39e001e authored by Hui Peng's avatar Hui Peng
Browse files

Fix a few OOB bugs in CreateAudioBroadcast

Bug: 275340684
Bug: 282234870
Test: manual
Ignore-AOSP-First: security
Tag: #security
Merged-In: Ia8e9c3a3e534f419b6bd6c902a35d2caf4c7727b
Change-Id: Ia8e9c3a3e534f419b6bd6c902a35d2caf4c7727b
parent f14f8de5
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -276,6 +276,10 @@ class LeAudioBroadcasterImpl : public LeAudioBroadcaster, public BigCallbacks {
      auto stream_context_vec =
          ltv.Find(le_audio::types::kLeAudioMetadataTypeStreamingAudioContext);
      if (stream_context_vec) {
        if (stream_context_vec.value().size() < 2) {
            LOG_ERROR("kLeAudioMetadataTypeStreamingAudioContext size < 2");
            return;
        }
        auto pp = stream_context_vec.value().data();
        if (stream_context_vec.value().size() < 2) {
          LOG_ERROR("stream_context_vec.value() size < 2");
@@ -288,6 +292,10 @@ class LeAudioBroadcasterImpl : public LeAudioBroadcaster, public BigCallbacks {
    auto stream_context_vec =
        ltv.Find(le_audio::types::kLeAudioMetadataTypeStreamingAudioContext);
    if (stream_context_vec) {
      if (stream_context_vec.value().size() < 2) {
            LOG_ERROR("kLeAudioMetadataTypeStreamingAudioContext size < 2");
            return;
      }
      auto pp = stream_context_vec.value().data();
      if (stream_context_vec.value().size() < 2) {
        LOG_ERROR("stream_context_vec.value() size < 2");
@@ -339,6 +347,10 @@ class LeAudioBroadcasterImpl : public LeAudioBroadcaster, public BigCallbacks {
      auto stream_context_vec =
          ltv.Find(le_audio::types::kLeAudioMetadataTypeStreamingAudioContext);
      if (stream_context_vec) {
        if (stream_context_vec.value().size() < 2) {
          LOG_ERROR("kLeAudioMetadataTypeStreamingAudioContext size < 2");
          return;
        }
        auto pp = stream_context_vec.value().data();
        UINT16_TO_STREAM(pp, context_type.value());
      }
@@ -347,6 +359,10 @@ class LeAudioBroadcasterImpl : public LeAudioBroadcaster, public BigCallbacks {
    auto stream_context_vec =
        ltv.Find(le_audio::types::kLeAudioMetadataTypeStreamingAudioContext);
    if (stream_context_vec) {
      if (stream_context_vec.value().size() < 2) {
        LOG_ERROR("kLeAudioMetadataTypeStreamingAudioContext size < 2");
        return;
      }
      auto pp = stream_context_vec.value().data();
      STREAM_TO_UINT16(context_type.value_ref(), pp);
    }