From 99480afe488402cc6f2128ec4daceee334991c02 Mon Sep 17 00:00:00 2001 From: boxwall Date: Thu, 24 Mar 2022 22:22:51 +0800 Subject: [PATCH] fix issues like null point check. Signed-off-by: boxwall Change-Id: Ieac2de6ea8883887c6373ffcfba4a5fe03f420a2 --- LICENSE | 0 frameworks/BUILD.gn | 0 frameworks/binder/include/camera_device_client.h | 4 ++-- frameworks/binder/src/camera_device_client.cpp | 4 ++-- frameworks/binder/src/camera_service_client.cpp | 10 +++++++--- frameworks/camera_ability.cpp | 0 frameworks/camera_ability_impl.cpp | 0 frameworks/camera_ability_impl.h | 5 ++--- frameworks/camera_client.cpp | 4 ++-- frameworks/camera_client.h | 4 ++-- frameworks/camera_config.cpp | 0 frameworks/camera_impl.cpp | 3 +++ frameworks/camera_impl.h | 0 frameworks/camera_info_impl.cpp | 0 frameworks/camera_info_impl.h | 0 frameworks/camera_kit.cpp | 0 frameworks/camera_manager.cpp | 0 frameworks/camera_manager.h | 0 frameworks/camera_service_callback.h | 0 frameworks/event_handler.cpp | 3 +++ frameworks/frame_config.cpp | 0 frameworks/passthrough/include/camera_device_client.h | 6 +++--- frameworks/passthrough/src/camera_service_client.cpp | 4 ++-- interfaces/kits/camera.h | 0 interfaces/kits/camera_ability.h | 0 interfaces/kits/camera_config.h | 0 interfaces/kits/camera_device_callback.h | 0 interfaces/kits/camera_info.h | 6 +++--- interfaces/kits/camera_kit.h | 0 interfaces/kits/camera_state_callback.h | 0 interfaces/kits/event_handler.h | 6 +++--- interfaces/kits/frame_config.h | 2 +- interfaces/kits/frame_state_callback.h | 0 interfaces/kits/meta_data.h | 0 services/BUILD.gn | 0 services/impl/include/camera_device.h | 8 ++++---- services/impl/src/camera_device.cpp | 7 +++++++ services/server/include/camera_type.h | 4 ++-- services/server/src/samgr_camera.cpp | 6 ++++++ test/BUILD.gn | 0 test/unittest/camera_lite_test.cpp | 0 41 files changed, 54 insertions(+), 32 deletions(-) mode change 100755 => 100644 LICENSE mode change 100755 => 100644 frameworks/BUILD.gn mode change 100755 => 100644 frameworks/camera_ability.cpp mode change 100755 => 100644 frameworks/camera_ability_impl.cpp mode change 100755 => 100644 frameworks/camera_ability_impl.h mode change 100755 => 100644 frameworks/camera_client.cpp mode change 100755 => 100644 frameworks/camera_client.h mode change 100755 => 100644 frameworks/camera_config.cpp mode change 100755 => 100644 frameworks/camera_impl.cpp mode change 100755 => 100644 frameworks/camera_impl.h mode change 100755 => 100644 frameworks/camera_info_impl.cpp mode change 100755 => 100644 frameworks/camera_info_impl.h mode change 100755 => 100644 frameworks/camera_kit.cpp mode change 100755 => 100644 frameworks/camera_manager.cpp mode change 100755 => 100644 frameworks/camera_manager.h mode change 100755 => 100644 frameworks/camera_service_callback.h mode change 100755 => 100644 frameworks/event_handler.cpp mode change 100755 => 100644 frameworks/frame_config.cpp mode change 100755 => 100644 interfaces/kits/camera.h mode change 100755 => 100644 interfaces/kits/camera_ability.h mode change 100755 => 100644 interfaces/kits/camera_config.h mode change 100755 => 100644 interfaces/kits/camera_device_callback.h mode change 100755 => 100644 interfaces/kits/camera_info.h mode change 100755 => 100644 interfaces/kits/camera_kit.h mode change 100755 => 100644 interfaces/kits/camera_state_callback.h mode change 100755 => 100644 interfaces/kits/event_handler.h mode change 100755 => 100644 interfaces/kits/frame_config.h mode change 100755 => 100644 interfaces/kits/frame_state_callback.h mode change 100755 => 100644 interfaces/kits/meta_data.h mode change 100755 => 100644 services/BUILD.gn mode change 100755 => 100644 test/BUILD.gn mode change 100755 => 100644 test/unittest/camera_lite_test.cpp diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/frameworks/BUILD.gn b/frameworks/BUILD.gn old mode 100755 new mode 100644 diff --git a/frameworks/binder/include/camera_device_client.h b/frameworks/binder/include/camera_device_client.h index f29883d..03d43d1 100644 --- a/frameworks/binder/include/camera_device_client.h +++ b/frameworks/binder/include/camera_device_client.h @@ -56,6 +56,6 @@ private: SvcIdentity sid_; int32_t ret_ = 0; }; -} -} +} // namespace Media +} // namespace OHOS #endif // CAMERA_DEVICE_CLIENT_H \ No newline at end of file diff --git a/frameworks/binder/src/camera_device_client.cpp b/frameworks/binder/src/camera_device_client.cpp index 12db7bb..61c11fb 100644 --- a/frameworks/binder/src/camera_device_client.cpp +++ b/frameworks/binder/src/camera_device_client.cpp @@ -328,5 +328,5 @@ int32_t CameraDeviceClient::DeviceClientCallback(const IpcContext* context, void client->cameraClient_->ClearIpcMsg(ipcMsg); return MEDIA_OK; } -} -} \ No newline at end of file +} // namespace Media +} // namespace OHOS diff --git a/frameworks/binder/src/camera_service_client.cpp b/frameworks/binder/src/camera_service_client.cpp index 2805439..bd66a5b 100644 --- a/frameworks/binder/src/camera_service_client.cpp +++ b/frameworks/binder/src/camera_service_client.cpp @@ -48,6 +48,10 @@ CameraServiceClient::~CameraServiceClient() void CameraServiceClient::InitCameraServiceClient(CameraServiceCallback *callback) { + if (callback == nullptr) { + MEDIA_INFO_LOG("Camera client initialize fail,empty callback."); + return; + } cameraServiceCb_ = callback; if (cameraClient_->InitCameraClient()) { MEDIA_INFO_LOG("Camera client initialize success."); @@ -78,7 +82,7 @@ int CameraServiceClient::Callback(void* owner, int code, IpcIo *reply) for (uint32_t i = 0; i < listSize; i++) { CameraPicSize *cameraPicSize = static_cast(IpcIoPopFlatObj(reply, &size)); if (cameraPicSize != nullptr) { - supportSizeList.emplace_back(*cameraPicSize); + supportSizeList.emplace_back(*cameraPicSize); } } // Get supported AfModes. @@ -311,5 +315,5 @@ void CameraServiceClient::CreateCamera(string cameraId) MEDIA_ERR_LOG("Create camera ipc transmission failed. (ret=%d)", ans); } } -} -} \ No newline at end of file +} // namespace Media +} // namespace OHOS diff --git a/frameworks/camera_ability.cpp b/frameworks/camera_ability.cpp old mode 100755 new mode 100644 diff --git a/frameworks/camera_ability_impl.cpp b/frameworks/camera_ability_impl.cpp old mode 100755 new mode 100644 diff --git a/frameworks/camera_ability_impl.h b/frameworks/camera_ability_impl.h old mode 100755 new mode 100644 index 97b2e7b..025747b --- a/frameworks/camera_ability_impl.h +++ b/frameworks/camera_ability_impl.h @@ -37,7 +37,6 @@ private: std::set supportProperties_; }; } // namespace Media -} // namespace +} // namespace OHOS - -#endif // OHOS_CAMERA_ABILITY_IMPL_H \ No newline at end of file +#endif // OHOS_CAMERA_ABILITY_IMPL_H diff --git a/frameworks/camera_client.cpp b/frameworks/camera_client.cpp old mode 100755 new mode 100644 index 0a10091..dd1422b --- a/frameworks/camera_client.cpp +++ b/frameworks/camera_client.cpp @@ -72,5 +72,5 @@ void CameraClient::ClearIpcMsg(void *ipcMsg) FreeBuffer(nullptr, ipcMsg); } } -} -} \ No newline at end of file +} // namespace Media +} // namespace OHOS diff --git a/frameworks/camera_client.h b/frameworks/camera_client.h old mode 100755 new mode 100644 index 22eb3bf..b91b8c8 --- a/frameworks/camera_client.h +++ b/frameworks/camera_client.h @@ -31,6 +31,6 @@ private: ~CameraClient() {} IClientProxy *proxy_ = nullptr; }; -} -} +} // namespace Media +} // namespace OHOS #endif // CAMERA_CLIENT_H diff --git a/frameworks/camera_config.cpp b/frameworks/camera_config.cpp old mode 100755 new mode 100644 diff --git a/frameworks/camera_impl.cpp b/frameworks/camera_impl.cpp old mode 100755 new mode 100644 index 5750763..78f33fc --- a/frameworks/camera_impl.cpp +++ b/frameworks/camera_impl.cpp @@ -58,6 +58,9 @@ void CameraImpl::Configure(CameraConfig &config) return; } + if (deviceClient_ == nullptr) { + return; + } int32_t ret = deviceClient_->SetCameraConfig(config); if (ret != MEDIA_OK) { MEDIA_ERR_LOG("Set camera config failed in cameraImpl."); diff --git a/frameworks/camera_impl.h b/frameworks/camera_impl.h old mode 100755 new mode 100644 diff --git a/frameworks/camera_info_impl.cpp b/frameworks/camera_info_impl.cpp old mode 100755 new mode 100644 diff --git a/frameworks/camera_info_impl.h b/frameworks/camera_info_impl.h old mode 100755 new mode 100644 diff --git a/frameworks/camera_kit.cpp b/frameworks/camera_kit.cpp old mode 100755 new mode 100644 diff --git a/frameworks/camera_manager.cpp b/frameworks/camera_manager.cpp old mode 100755 new mode 100644 diff --git a/frameworks/camera_manager.h b/frameworks/camera_manager.h old mode 100755 new mode 100644 diff --git a/frameworks/camera_service_callback.h b/frameworks/camera_service_callback.h old mode 100755 new mode 100644 diff --git a/frameworks/event_handler.cpp b/frameworks/event_handler.cpp old mode 100755 new mode 100644 index 33bac80..7a0857e --- a/frameworks/event_handler.cpp +++ b/frameworks/event_handler.cpp @@ -42,6 +42,9 @@ bool EventHandler::IsRunning() void EventHandler::EventDispatch(EventHandler *hdl) { + if (hdl == nullptr) { + return; + } std::unique_lock lock(hdl->mtx_); hdl->running_ = true; while (hdl->running_) { diff --git a/frameworks/frame_config.cpp b/frameworks/frame_config.cpp old mode 100755 new mode 100644 diff --git a/frameworks/passthrough/include/camera_device_client.h b/frameworks/passthrough/include/camera_device_client.h index 3c3ee8c..a878b2d 100644 --- a/frameworks/passthrough/include/camera_device_client.h +++ b/frameworks/passthrough/include/camera_device_client.h @@ -45,6 +45,6 @@ private: CameraConfig *cc_ = nullptr; CameraService *cameraService_ = nullptr; }; -} -} -#endif // CAMERA_DEVICE_CLIENT_H \ No newline at end of file +} // namespace Media +} // namespace OHOS +#endif // CAMERA_DEVICE_CLIENT_H diff --git a/frameworks/passthrough/src/camera_service_client.cpp b/frameworks/passthrough/src/camera_service_client.cpp index 46024bb..689c703 100644 --- a/frameworks/passthrough/src/camera_service_client.cpp +++ b/frameworks/passthrough/src/camera_service_client.cpp @@ -74,5 +74,5 @@ void CameraServiceClient::CreateCamera(string cameraId) static_cast(cameraService_->CreateCamera(cameraId)); cameraServiceCb_->OnCameraStatusChange(cameraId, cameraStatus); } -} -} +} // namespace Media +} // namespace OHOS diff --git a/interfaces/kits/camera.h b/interfaces/kits/camera.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/camera_ability.h b/interfaces/kits/camera_ability.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/camera_config.h b/interfaces/kits/camera_config.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/camera_device_callback.h b/interfaces/kits/camera_device_callback.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/camera_info.h b/interfaces/kits/camera_info.h old mode 100755 new mode 100644 index 41af6da..0a7baeb --- a/interfaces/kits/camera_info.h +++ b/interfaces/kits/camera_info.h @@ -95,6 +95,6 @@ public: return -1; } }; -} -} -#endif // OHOS_CAMERA_INFO_H \ No newline at end of file +} // namespace Media +} // namespace OHOS +#endif // OHOS_CAMERA_INFO_H diff --git a/interfaces/kits/camera_kit.h b/interfaces/kits/camera_kit.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/camera_state_callback.h b/interfaces/kits/camera_state_callback.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/event_handler.h b/interfaces/kits/event_handler.h old mode 100755 new mode 100644 index 94c8e53..dafa19c --- a/interfaces/kits/event_handler.h +++ b/interfaces/kits/event_handler.h @@ -43,8 +43,8 @@ public: private: struct EventObj { EventObj() = default; - virtual ~EventObj() {}; - virtual void Exec() {}; + virtual ~EventObj() {} + virtual void Exec() {} }; std::queue msgQ_; @@ -55,7 +55,7 @@ private: template struct PostTask : public EventObj { - PostTask(const F &f) : f_(f) {} + explicit PostTask(const F &f) : f_(f) {} const F f_; void Exec() override { diff --git a/interfaces/kits/frame_config.h b/interfaces/kits/frame_config.h old mode 100755 new mode 100644 index 21dcfc3..e429aa0 --- a/interfaces/kits/frame_config.h +++ b/interfaces/kits/frame_config.h @@ -70,7 +70,7 @@ public: * @param type Indicates the frame configuration mode, which can be FRAME_CONFIG_PREVIEW, * @FRAME_CONFIG_RECORD, or FRAME_CONFIG_CAPTURE. */ - FrameConfig(int32_t type); + explicit FrameConfig(int32_t type); /** * @brief A destructor used to delete the FrameConfig instance. diff --git a/interfaces/kits/frame_state_callback.h b/interfaces/kits/frame_state_callback.h old mode 100755 new mode 100644 diff --git a/interfaces/kits/meta_data.h b/interfaces/kits/meta_data.h old mode 100755 new mode 100644 diff --git a/services/BUILD.gn b/services/BUILD.gn old mode 100755 new mode 100644 diff --git a/services/impl/include/camera_device.h b/services/impl/include/camera_device.h index fee3252..23769c7 100644 --- a/services/impl/include/camera_device.h +++ b/services/impl/include/camera_device.h @@ -75,7 +75,7 @@ class PreviewAssistant : public DeviceAssistant { public: int32_t SetFrameConfig(FrameConfig &fc, uint32_t *streamId) override; int32_t Start(uint32_t streamId) override; - virtual int32_t Stop() override; + int32_t Stop() override; Surface *capSurface_ = nullptr; private: pthread_t threadId; @@ -85,7 +85,7 @@ private: class CaptureAssistant : public DeviceAssistant { int32_t SetFrameConfig(FrameConfig &fc, uint32_t *streamId) override; int32_t Start(uint32_t streamId) override; - virtual int32_t Stop() override; + int32_t Stop() override; CODEC_HANDLETYPE vencHdl_ = nullptr; Surface *capSurface_ = nullptr; }; @@ -94,7 +94,7 @@ class CallbackAssistant : public DeviceAssistant { public: int32_t SetFrameConfig(FrameConfig &fc, uint32_t *streamId) override; int32_t Start(uint32_t streamId) override; - virtual int32_t Stop() override; + int32_t Stop() override; Surface *capSurface_ = nullptr; private: pthread_t threadId; @@ -104,7 +104,7 @@ private: class CameraDevice { public: CameraDevice(); - CameraDevice(uint32_t cameraId); + explicit CameraDevice(uint32_t cameraId); virtual ~CameraDevice(); int32_t Initialize(); diff --git a/services/impl/src/camera_device.cpp b/services/impl/src/camera_device.cpp index 123ed8f..49f16bc 100644 --- a/services/impl/src/camera_device.cpp +++ b/services/impl/src/camera_device.cpp @@ -259,6 +259,9 @@ static int32_t CameraCreateJpegEnc(FrameConfig &fc, StreamAttr stream, uint32_t static int32_t CopyCodecOutput(void *dst, uint32_t *size, OutputInfo *buffer) { + if (dst == nullptr || size == nullptr || buffer == nullptr) { + return MEDIA_ERR; + } char *dstBuf = reinterpret_cast(dst); for (uint32_t i = 0; i < buffer->bufferCnt; i++) { uint32_t packSize = buffer->buffers[i].length - buffer->buffers[i].offset; @@ -584,6 +587,10 @@ int32_t CaptureAssistant::Start(uint32_t streamId) int32_t retCode = MEDIA_ERR; state_ = LOOP_LOOPING; HalCameraStreamOn(cameraId_, streamId); + if (capSurface_ == nullptr) { + MEDIA_ERR_LOG("Create capture venc failed."); + return retCode; + } int pictures = capSurface_->GetQueueSize(); int32_t ret = CodecStart(vencHdl_); if (ret != 0) { diff --git a/services/server/include/camera_type.h b/services/server/include/camera_type.h index 0ec848b..ec100fa 100644 --- a/services/server/include/camera_type.h +++ b/services/server/include/camera_type.h @@ -51,6 +51,6 @@ struct CallBackPara { }; const char SERVICE_NAME[] = "CameraServer"; static const int32_t DEFAULT_IPC_SIZE = 300; -} -} +} // namespace Media +} // namespace OHOS #endif diff --git a/services/server/src/samgr_camera.cpp b/services/server/src/samgr_camera.cpp index 4ef2851..40375a3 100644 --- a/services/server/src/samgr_camera.cpp +++ b/services/server/src/samgr_camera.cpp @@ -47,6 +47,9 @@ static const char* GetName(Service* service) static BOOL Initialize(Service* service, Identity identity) { + if (service == nullptr) { + return FALSE; + } CameraService* example = (CameraService*)service; example->identity = identity; MEDIA_INFO_LOG("Initialize(%s)! Identity<%d, %d, %p>", Media::SERVICE_NAME, @@ -56,6 +59,9 @@ static BOOL Initialize(Service* service, Identity identity) static BOOL MessageHandle(Service* service, Request* msg) { + if (service == nullptr || msg == nullptr) { + return FALSE; + } MEDIA_INFO_LOG("MessageHandle(%s)! Request<%d, %d, %p>", service->GetName(service), msg->msgId, msg->msgValue, msg->data); return FALSE; diff --git a/test/BUILD.gn b/test/BUILD.gn old mode 100755 new mode 100644 diff --git a/test/unittest/camera_lite_test.cpp b/test/unittest/camera_lite_test.cpp old mode 100755 new mode 100644