diff --git a/frameworks/cj/avplayer/cj_avplayer_callback.cpp b/frameworks/cj/avplayer/cj_avplayer_callback.cpp index 2cd650f8d36757b0abc80b6e53189ce3480a445e..ef30e8a5bed16a74531bc4a26cbb54b8a3a1c70d 100644 --- a/frameworks/cj/avplayer/cj_avplayer_callback.cpp +++ b/frameworks/cj/avplayer/cj_avplayer_callback.cpp @@ -175,6 +175,7 @@ void CJAVPlayerCallback::OnStateChangeCb(const int32_t extra, const Format &info listener_->NotifyState(state); } + std::lock_guard lock(mutex_); if (state_ != state) { state_ = state; std::string stateStr; diff --git a/frameworks/cj/metadatahelper/src/cj_avmetadataextractor.cpp b/frameworks/cj/metadatahelper/src/cj_avmetadataextractor.cpp index 9a0e88c00225d7fff653cad3b65dfe2ce41b2b70..eabef83f3aa2979b475d2c2d69903cc71656d676 100644 --- a/frameworks/cj/metadatahelper/src/cj_avmetadataextractor.cpp +++ b/frameworks/cj/metadatahelper/src/cj_avmetadataextractor.cpp @@ -30,7 +30,7 @@ bool CreateCString(std::string value, char** result) if (*result == nullptr) { return false; } - if (memcpy_s(*result, value.size() + 1, value.c_str(), value.size()) != 0) { + if (memcpy_s(*result, (value.size() + 1) * sizeof(char), value.c_str(), value.size()) != 0) { MEDIA_LOGE("Failed to create string."); free(*result); return false; @@ -46,6 +46,7 @@ bool CreateMapPair(std::string key, std::string value, char** keyPtr, char** val ret = CreateCString(value, valuePtr); if (ret == false) { free(*keyPtr); + keyPtr = nullptr; } return ret; }