diff --git a/modules/desktop_capture/ohos/base_window_capturer.cc b/modules/desktop_capture/ohos/base_window_capturer.cc index 48524b6534cbed477def7e5c82f71da18cf840cc..b10b6c08b56b80b4f58b6449133e8c4c84005bfb 100644 --- a/modules/desktop_capture/ohos/base_window_capturer.cc +++ b/modules/desktop_capture/ohos/base_window_capturer.cc @@ -40,6 +40,7 @@ #include "rtc_base/string_encode.h" #include "rtc_base/string_to_number.h" #include "rtc_base/time_utils.h" +#include "third_party/bounds_checking_function/include/securec.h" namespace webrtc { namespace { @@ -299,7 +300,11 @@ void BaseWindowCapturer::HandleBuffer() { return; } for (int32_t i = 0; i < height; i++) { - memcpy(pData, pSrcData, frameStride); + if (memcpy_s(pData, frameStride, pSrcData, frameStride) != EOK) { + LOG(ERROR) << "data memcpy_s failed"; + screen_capture_adapter_->ReleaseVideoBuffer(); + return; + } pData += frameStride; pSrcData += stride; }