[M120 Migration][WebRTC]fix unsafe code for security check and svace issue 31/310231/5
authorhongyanting <yanting.hong@samsung.com>
Wed, 24 Apr 2024 08:15:45 +0000 (16:15 +0800)
committerBot Blink <blinkbot@samsung.com>
Fri, 14 Jun 2024 12:54:28 +0000 (12:54 +0000)
Migrated from:
https://review.tizen.org/gerrit/#/c/platform/framework/web/chromium-efl/+/291945/

Change-Id: Ie483554b69a0142b37fdc71fac90df2322ed89b4
Signed-off-by: hongyanting <yanting.hong@samsung.com>
media/renderers/paint_canvas_video_renderer.cc
third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc
third_party/webrtc/pc/sdp_offer_answer.cc

index d703f3c4d33db750e08b3928a34e322467b6b282..591d8d1876494cdff5ef899dd905d5f45321e3b0 100644 (file)
@@ -2011,6 +2011,8 @@ bool PaintCanvasVideoRenderer::UpdateLastImage(
       && !video_frame->IsTBMBackend()
 #endif
   ) {
+    if (!raster_context_provider)
+      return false;
     DCHECK(raster_context_provider);
     bool supports_oop_raster =
         raster_context_provider->ContextCapabilities().supports_oop_raster;
index dfabc7addf1aa11c2a35dc09df455bb661bc702a..a0f9f0df1ee5dee09be50d54144fecc3c9aa2366 100644 (file)
@@ -1210,12 +1210,16 @@ void MediaStreamVideoTrack::OnReadyStateChanged(
   // invalidate iterators.
 
   Vector<WebMediaStreamSink*> sinks_copy(sinks_);
-  for (auto* sink : sinks_copy)
-    sink->OnReadyStateChanged(state);
+  for (auto* sink : sinks_copy) {
+    if (sink)
+      sink->OnReadyStateChanged(state);
+  }
 
   Vector<WebMediaStreamSink*> encoded_sinks_copy(encoded_sinks_);
-  for (auto* encoded_sink : encoded_sinks_copy)
-    encoded_sink->OnReadyStateChanged(state);
+  for (auto* encoded_sink : encoded_sinks_copy) {
+    if (encoded_sink)
+      encoded_sink->OnReadyStateChanged(state);
+  }
 }
 
 void MediaStreamVideoTrack::SetMinimumFrameRate(double min_frame_rate) {
index eadeaf0ff7d4bf514f31df8d7a86c0978dcc72fe..c4384f006dee7ec55f62cafb19e6d12a2bff234a 100644 (file)
@@ -106,6 +106,8 @@ const char* LoadTypeToString(WebMediaPlayer::LoadType type) {
       return "MediaSource";
     case WebMediaPlayer::kLoadTypeMediaStream:
       return "MediaStream";
+    default:
+      return "Unknown type";
   }
 }
 
@@ -121,6 +123,8 @@ const char* ReadyStateToString(WebMediaPlayer::ReadyState state) {
       return "HaveFutureData";
     case WebMediaPlayer::kReadyStateHaveEnoughData:
       return "HaveEnoughData";
+    default:
+      return "Unknown state";
   }
 }
 
@@ -140,6 +144,8 @@ const char* NetworkStateToString(WebMediaPlayer::NetworkState state) {
       return "NetworkError";
     case WebMediaPlayer::kNetworkStateDecodeError:
       return "DecodeError";
+    default:
+      return "Unknown state";
   }
 }
 
index 436f0db1da2aa27f3ea4d4bf1d4b081f8f805e9d..4f944b4600be968b4bbce010d40e186de3b36ba6 100644 (file)
@@ -2017,9 +2017,12 @@ void SdpOfferAnswerHandler::SetRemoteDescription(
 
         // Abort early if `this_weak_ptr` is no longer valid.
         if (!this_weak_ptr) {
-          observer->OnSetRemoteDescriptionComplete(RTCError(
-              RTCErrorType::INTERNAL_ERROR,
-              "SetRemoteDescription failed because the session was shut down"));
+          if (observer) {
+            observer->OnSetRemoteDescriptionComplete(
+                RTCError(RTCErrorType::INTERNAL_ERROR,
+                         "SetRemoteDescription failed because the session was "
+                         "shut down"));
+          }
           operations_chain_callback();
           return;
         }