From 290758ba7ee8ce9b1696628ee207bceed847d2d3 Mon Sep 17 00:00:00 2001 From: xuxuepeng Date: Tue, 5 Sep 2023 11:10:11 +0000 Subject: [PATCH 07/33] !2171 Fix nullptr in src/daemon/entry * !2160 Fix nullptr in src/daemon/entry --- .../cri/v1/cri_v1_runtime_image_service.cc | 29 ++++- .../cri/v1/cri_v1_runtime_runtime_service.cc | 116 ++++++++++++++++- .../cri/v1alpha/cri_runtime_image_service.cc | 29 ++++- .../v1alpha/cri_runtime_runtime_service.cc | 118 +++++++++++++++++- .../connect/grpc/grpc_containers_service.cc | 35 ++++++ .../entry/connect/grpc/grpc_images_service.cc | 40 ++++++ .../connect/grpc/grpc_server_tls_auth.cc | 4 + .../connect/grpc/grpc_volumes_service.cc | 15 +++ .../entry/connect/rest/rest_service_common.c | 12 +- src/daemon/entry/cri/network_plugin.h | 10 +- .../v1/v1_cri_container_manager_service.cc | 18 ++- .../cri/v1/v1_cri_container_manager_service.h | 8 +- .../cri/v1/v1_cri_image_manager_service.h | 4 +- .../v1/v1_cri_image_manager_service_impl.cc | 12 +- .../v1/v1_cri_image_manager_service_impl.h | 8 +- .../v1/v1_cri_pod_sandbox_manager_service.cc | 6 +- .../v1/v1_cri_pod_sandbox_manager_service.h | 2 +- .../entry/cri/v1/v1_cri_runtime_service.h | 6 +- .../cri/v1/v1_cri_runtime_service_impl.cc | 6 +- .../cri/v1/v1_cri_runtime_service_impl.h | 6 +- .../v1alpha/cri_container_manager_service.cc | 18 ++- .../v1alpha/cri_container_manager_service.h | 8 +- .../cri/v1alpha/cri_image_manager_service.h | 4 +- .../v1alpha/cri_image_manager_service_impl.cc | 12 +- .../v1alpha/cri_image_manager_service_impl.h | 8 +- .../cri_pod_sandbox_manager_service.cc | 12 +- .../v1alpha/cri_pod_sandbox_manager_service.h | 6 +- .../entry/cri/v1alpha/cri_runtime_service.h | 8 +- .../cri/v1alpha/cri_runtime_service_impl.cc | 8 +- .../cri/v1alpha/cri_runtime_service_impl.h | 8 +- 30 files changed, 471 insertions(+), 105 deletions(-) diff --git a/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_image_service.cc b/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_image_service.cc index f3e745ff..ac62b6eb 100644 --- a/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_image_service.cc +++ b/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_image_service.cc @@ -33,6 +33,11 @@ grpc::Status RuntimeV1ImageServiceImpl::PullImage(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + EVENT("Event: {Object: CRI, Type: Pulling image %s}", request->image().image().c_str()); std::string imageRef = rService->PullImage(request->image(), request->auth(), error); @@ -54,9 +59,14 @@ grpc::Status RuntimeV1ImageServiceImpl::ListImages(grpc::ServerContext *context, std::vector> images; Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all images}"); - rService->ListImages(request->filter(), &images, error); + rService->ListImages(request->filter(), images, error); if (!error.Empty()) { ERROR("{Object: CRI, Type: Failed to list all images: %s}", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -82,6 +92,11 @@ grpc::Status RuntimeV1ImageServiceImpl::ImageStatus(grpc::ServerContext *context std::unique_ptr image_info = nullptr; Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing image %s}", request->image().image().c_str()); image_info = rService->ImageStatus(request->image(), error); @@ -108,9 +123,14 @@ grpc::Status RuntimeV1ImageServiceImpl::ImageFsInfo(grpc::ServerContext *context std::vector> usages; Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing image fs info}"); - rService->ImageFsInfo(&usages, error); + rService->ImageFsInfo(usages, error); if (!error.Empty()) { ERROR("{Object: CRI, Type: Failed to status image fs info: %s}", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -135,6 +155,11 @@ grpc::Status RuntimeV1ImageServiceImpl::RemoveImage(grpc::ServerContext *context { Errors error; + if (request == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + EVENT("Event: {Object: CRI, Type: Removing image %s}", request->image().image().c_str()); rService->RemoveImage(request->image(), error); diff --git a/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_runtime_service.cc b/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_runtime_service.cc index d897119d..b8d5746c 100644 --- a/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_runtime_service.cc +++ b/src/daemon/entry/connect/grpc/cri/v1/cri_v1_runtime_runtime_service.cc @@ -51,6 +51,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::Version(grpc::ServerContext *context, runtime::v1::VersionResponse *reply) { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + m_rService->Version(request->version(), reply, error); if (!error.Empty()) { return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -65,6 +70,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::CreateContainer(grpc::ServerContext *c { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Creating Container}"); std::string responseID = @@ -86,6 +96,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::StartContainer(grpc::ServerContext *co { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Starting Container: %s}", request->container_id().c_str()); m_rService->StartContainer(request->container_id(), error); @@ -105,6 +120,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::StopContainer(grpc::ServerContext *con { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Stopping Container: %s}", request->container_id().c_str()); m_rService->StopContainer(request->container_id(), (int64_t)request->timeout(), error); @@ -124,6 +144,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::RemoveContainer(grpc::ServerContext *c { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Removing Container: %s}", request->container_id().c_str()); m_rService->RemoveContainer(request->container_id(), error); @@ -143,10 +168,15 @@ grpc::Status RuntimeV1RuntimeServiceImpl::ListContainers(grpc::ServerContext *co { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all Container}"); std::vector> containers; - m_rService->ListContainers(request->has_filter() ? &request->filter() : nullptr, &containers, error); + m_rService->ListContainers(request->has_filter() ? &request->filter() : nullptr, containers, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list all containers %s", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -172,6 +202,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::ContainerStats(grpc::ServerContext *co { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Getting Container Stats: %s}", request->container_id().c_str()); std::unique_ptr contStats = @@ -193,10 +228,15 @@ grpc::Status RuntimeV1RuntimeServiceImpl::ListContainerStats(grpc::ServerContext { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all Container stats}"); std::vector> containers; - m_rService->ListContainerStats(request->has_filter() ? &request->filter() : nullptr, &containers, error); + m_rService->ListContainerStats(request->has_filter() ? &request->filter() : nullptr, containers, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list all containers stat %s", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -222,6 +262,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::ContainerStatus(grpc::ServerContext *c { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing Container: %s}", request->container_id().c_str()); std::unique_ptr contStatus = @@ -243,6 +288,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::ExecSync(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + WARN("Event: {Object: CRI, Type: sync execing Container: %s}", request->container_id().c_str()); m_rService->ExecSync(request->container_id(), request->cmd(), request->timeout(), reply, error); @@ -262,6 +312,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::RunPodSandbox(grpc::ServerContext *con { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Running Pod}"); std::string responseID = m_rService->RunPodSandbox(request->config(), request->runtime_handler(), error); @@ -282,6 +337,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::StopPodSandbox(grpc::ServerContext *co { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Stopping Pod: %s}", request->pod_sandbox_id().c_str()); m_rService->StopPodSandbox(request->pod_sandbox_id(), error); @@ -302,6 +362,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::RemovePodSandbox(grpc::ServerContext * { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Removing Pod: %s}", request->pod_sandbox_id().c_str()); m_rService->RemovePodSandbox(request->pod_sandbox_id(), error); @@ -322,6 +387,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::PodSandboxStatus(grpc::ServerContext * { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Status Pod: %s}", request->pod_sandbox_id().c_str()); std::unique_ptr podStatus; @@ -344,6 +414,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::ListPodSandbox(grpc::ServerContext *co { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all Pods}"); std::vector> pods; @@ -373,6 +448,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::PodSandboxStats(grpc::ServerContext *c { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Stats Pod: %s}", request->pod_sandbox_id().c_str()); std::unique_ptr podStats; @@ -396,10 +476,15 @@ RuntimeV1RuntimeServiceImpl::ListPodSandboxStats(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing Pods Stats}"); std::vector> podsStats; - m_rService->ListPodSandboxStats(request->has_filter() ? &request->filter() : nullptr, &podsStats, error); + m_rService->ListPodSandboxStats(request->has_filter() ? &request->filter() : nullptr, podsStats, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list pods stats: %s", error.GetCMessage()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -425,6 +510,11 @@ RuntimeV1RuntimeServiceImpl::UpdateContainerResources(grpc::ServerContext *conte { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + WARN("Event: {Object: CRI, Type: Updating container resources: %s}", request->container_id().c_str()); m_rService->UpdateContainerResources(request->container_id(), request->linux(), error); @@ -445,6 +535,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::Exec(grpc::ServerContext *context, { Errors error; + if (request == nullptr || response == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: execing Container: %s}", request->container_id().c_str()); m_rService->Exec(*request, response, error); @@ -465,6 +560,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::Attach(grpc::ServerContext *context, { Errors error; + if (request == nullptr || response == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: attaching Container: %s}", request->container_id().c_str()); m_rService->Attach(*request, response, error); @@ -486,6 +586,11 @@ RuntimeV1RuntimeServiceImpl::UpdateRuntimeConfig(grpc::ServerContext *context, { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Updating Runtime Config}"); m_rService->UpdateRuntimeConfig(request->runtime_config(), error); @@ -505,6 +610,11 @@ grpc::Status RuntimeV1RuntimeServiceImpl::Status(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing daemon}"); std::unique_ptr status = m_rService->Status(error); diff --git a/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_image_service.cc b/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_image_service.cc index b724e729..1353933b 100644 --- a/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_image_service.cc +++ b/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_image_service.cc @@ -33,6 +33,11 @@ grpc::Status RuntimeImageServiceImpl::PullImage(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + EVENT("Event: {Object: CRI, Type: Pulling image %s}", request->image().image().c_str()); std::string imageRef = rService->PullImage(request->image(), request->auth(), error); @@ -54,9 +59,14 @@ grpc::Status RuntimeImageServiceImpl::ListImages(grpc::ServerContext *context, std::vector> images; Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all images}"); - rService->ListImages(request->filter(), &images, error); + rService->ListImages(request->filter(), images, error); if (!error.Empty()) { ERROR("{Object: CRI, Type: Failed to list all images: %s}", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -82,6 +92,11 @@ grpc::Status RuntimeImageServiceImpl::ImageStatus(grpc::ServerContext *context, std::unique_ptr image_info = nullptr; Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing image %s}", request->image().image().c_str()); image_info = rService->ImageStatus(request->image(), error); @@ -108,9 +123,14 @@ grpc::Status RuntimeImageServiceImpl::ImageFsInfo(grpc::ServerContext *context, std::vector> usages; Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing image fs info}"); - rService->ImageFsInfo(&usages, error); + rService->ImageFsInfo(usages, error); if (!error.Empty()) { ERROR("{Object: CRI, Type: Failed to status image fs info: %s}", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -135,6 +155,11 @@ grpc::Status RuntimeImageServiceImpl::RemoveImage(grpc::ServerContext *context, { Errors error; + if (request == nullptr) { + ERROR("Invalid arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + EVENT("Event: {Object: CRI, Type: Removing image %s}", request->image().image().c_str()); rService->RemoveImage(request->image(), error); diff --git a/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_runtime_service.cc b/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_runtime_service.cc index 28775554..ec3f01cd 100644 --- a/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_runtime_service.cc +++ b/src/daemon/entry/connect/grpc/cri/v1alpha/cri_runtime_runtime_service.cc @@ -49,6 +49,11 @@ grpc::Status RuntimeRuntimeServiceImpl::Version(grpc::ServerContext *context, runtime::v1alpha2::VersionResponse *reply) { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + m_rService->Version(request->version(), reply, error); if (!error.Empty()) { return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -63,6 +68,11 @@ grpc::Status RuntimeRuntimeServiceImpl::CreateContainer(grpc::ServerContext *con { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Creating Container}"); std::string responseID = @@ -84,6 +94,11 @@ grpc::Status RuntimeRuntimeServiceImpl::StartContainer(grpc::ServerContext *cont { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Starting Container: %s}", request->container_id().c_str()); m_rService->StartContainer(request->container_id(), error); @@ -103,6 +118,11 @@ grpc::Status RuntimeRuntimeServiceImpl::StopContainer(grpc::ServerContext *conte { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Stopping Container: %s}", request->container_id().c_str()); m_rService->StopContainer(request->container_id(), (int64_t)request->timeout(), error); @@ -122,6 +142,11 @@ grpc::Status RuntimeRuntimeServiceImpl::RemoveContainer(grpc::ServerContext *con { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Removing Container: %s}", request->container_id().c_str()); m_rService->RemoveContainer(request->container_id(), error); @@ -141,10 +166,15 @@ grpc::Status RuntimeRuntimeServiceImpl::ListContainers(grpc::ServerContext *cont { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all Container}"); std::vector> containers; - m_rService->ListContainers(request->has_filter() ? &request->filter() : nullptr, &containers, error); + m_rService->ListContainers(request->has_filter() ? &request->filter() : nullptr, containers, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list all containers %s", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -170,6 +200,11 @@ grpc::Status RuntimeRuntimeServiceImpl::ContainerStats(grpc::ServerContext *cont { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Getting Container Stats: %s}", request->container_id().c_str()); std::unique_ptr contStats = @@ -191,10 +226,15 @@ grpc::Status RuntimeRuntimeServiceImpl::ListContainerStats(grpc::ServerContext * { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all Container stats}"); std::vector> containers; - m_rService->ListContainerStats(request->has_filter() ? &request->filter() : nullptr, &containers, error); + m_rService->ListContainerStats(request->has_filter() ? &request->filter() : nullptr, containers, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list all containers stat %s", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -220,6 +260,11 @@ grpc::Status RuntimeRuntimeServiceImpl::ContainerStatus(grpc::ServerContext *con { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing Container: %s}", request->container_id().c_str()); std::unique_ptr contStatus = @@ -241,6 +286,11 @@ grpc::Status RuntimeRuntimeServiceImpl::ExecSync(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + WARN("Event: {Object: CRI, Type: sync execing Container: %s}", request->container_id().c_str()); m_rService->ExecSync(request->container_id(), request->cmd(), request->timeout(), reply, error); @@ -260,6 +310,11 @@ grpc::Status RuntimeRuntimeServiceImpl::RunPodSandbox(grpc::ServerContext *conte { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Running Pod}"); std::string responseID = m_rService->RunPodSandbox(request->config(), request->runtime_handler(), error); @@ -280,6 +335,11 @@ grpc::Status RuntimeRuntimeServiceImpl::StopPodSandbox(grpc::ServerContext *cont { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Stopping Pod: %s}", request->pod_sandbox_id().c_str()); m_rService->StopPodSandbox(request->pod_sandbox_id(), error); @@ -300,6 +360,11 @@ grpc::Status RuntimeRuntimeServiceImpl::RemovePodSandbox(grpc::ServerContext *co { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Removing Pod: %s}", request->pod_sandbox_id().c_str()); m_rService->RemovePodSandbox(request->pod_sandbox_id(), error); @@ -320,6 +385,11 @@ grpc::Status RuntimeRuntimeServiceImpl::PodSandboxStatus(grpc::ServerContext *co { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Status Pod: %s}", request->pod_sandbox_id().c_str()); std::unique_ptr podStatus; @@ -342,10 +412,15 @@ grpc::Status RuntimeRuntimeServiceImpl::ListPodSandbox(grpc::ServerContext *cont { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing all Pods}"); std::vector> pods; - m_rService->ListPodSandbox(request->has_filter() ? &request->filter() : nullptr, &pods, error); + m_rService->ListPodSandbox(request->has_filter() ? &request->filter() : nullptr, pods, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list all pods: %s", error.GetMessage().c_str()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -370,6 +445,11 @@ grpc::Status RuntimeRuntimeServiceImpl::PodSandboxStats(grpc::ServerContext *con { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Stats Pod: %s}", request->pod_sandbox_id().c_str()); std::unique_ptr podStats; @@ -393,10 +473,15 @@ RuntimeRuntimeServiceImpl::ListPodSandboxStats(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Listing Pods Stats}"); std::vector> podsStats; - m_rService->ListPodSandboxStats(request->has_filter() ? &request->filter() : nullptr, &podsStats, error); + m_rService->ListPodSandboxStats(request->has_filter() ? &request->filter() : nullptr, podsStats, error); if (!error.Empty()) { ERROR("Object: CRI, Type: Failed to list pods stats: %s", error.GetCMessage()); return grpc::Status(grpc::StatusCode::UNKNOWN, error.GetMessage()); @@ -422,6 +507,11 @@ RuntimeRuntimeServiceImpl::UpdateContainerResources(grpc::ServerContext *context { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + WARN("Event: {Object: CRI, Type: Updating container resources: %s}", request->container_id().c_str()); m_rService->UpdateContainerResources(request->container_id(), request->linux(), error); @@ -442,6 +532,11 @@ grpc::Status RuntimeRuntimeServiceImpl::Exec(grpc::ServerContext *context, { Errors error; + if (request == nullptr || response == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: execing Container: %s}", request->container_id().c_str()); m_rService->Exec(*request, response, error); @@ -462,6 +557,11 @@ grpc::Status RuntimeRuntimeServiceImpl::Attach(grpc::ServerContext *context, { Errors error; + if (request == nullptr || response == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: attaching Container: %s}", request->container_id().c_str()); m_rService->Attach(*request, response, error); @@ -483,6 +583,11 @@ RuntimeRuntimeServiceImpl::UpdateRuntimeConfig(grpc::ServerContext *context, { Errors error; + if (request == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + EVENT("Event: {Object: CRI, Type: Updating Runtime Config}"); m_rService->UpdateRuntimeConfig(request->runtime_config(), error); @@ -502,6 +607,11 @@ grpc::Status RuntimeRuntimeServiceImpl::Status(grpc::ServerContext *context, { Errors error; + if (request == nullptr || reply == nullptr) { + ERROR("Invalid input arguments"); + return grpc::Status(grpc::StatusCode::INVALID_ARGUMENT, "Invalid input arguments"); + } + INFO("Event: {Object: CRI, Type: Statusing daemon}"); std::unique_ptr status = m_rService->Status(error); diff --git a/src/daemon/entry/connect/grpc/grpc_containers_service.cc b/src/daemon/entry/connect/grpc/grpc_containers_service.cc index 76f597b5..ab3f6ab7 100644 --- a/src/daemon/entry/connect/grpc/grpc_containers_service.cc +++ b/src/daemon/entry/connect/grpc/grpc_containers_service.cc @@ -430,6 +430,11 @@ Status ContainerServiceImpl::RemoteExec(ServerContext *context, container_exec_request *container_req = nullptr; container_exec_response *container_res = nullptr; + if (context == nullptr || stream == nullptr) { + ERROR("Invalid arguments"); + return Status(StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + prctl(PR_SET_NAME, "ContRExec"); auto status = GrpcServerTlsAuth::auth(context, "container_exec_create"); @@ -599,6 +604,11 @@ Status ContainerServiceImpl::Attach(ServerContext *context, ServerReaderWriter &init_metadata = context->client_metadata(); auto tls_mode_kv = init_metadata.find("tls_mode"); if (tls_mode_kv == init_metadata.end()) { diff --git a/src/daemon/entry/connect/grpc/grpc_volumes_service.cc b/src/daemon/entry/connect/grpc/grpc_volumes_service.cc index 8b090486..004b57b2 100644 --- a/src/daemon/entry/connect/grpc/grpc_volumes_service.cc +++ b/src/daemon/entry/connect/grpc/grpc_volumes_service.cc @@ -118,6 +118,11 @@ int VolumeServiceImpl::volume_prune_response_to_grpc(volume_prune_volume_respons Status VolumeServiceImpl::List(ServerContext *context, const ListVolumeRequest *request, ListVolumeResponse *reply) { + if (context == nullptr || request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return Status(StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + auto status = GrpcServerTlsAuth::auth(context, "volume_list"); if (!status.ok()) { return status; @@ -152,6 +157,11 @@ Status VolumeServiceImpl::List(ServerContext *context, const ListVolumeRequest * Status VolumeServiceImpl::Remove(ServerContext *context, const RemoveVolumeRequest *request, RemoveVolumeResponse *reply) { + if (context == nullptr || request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return Status(StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + auto status = GrpcServerTlsAuth::auth(context, "volume_remove"); if (!status.ok()) { return status; @@ -185,6 +195,11 @@ Status VolumeServiceImpl::Remove(ServerContext *context, const RemoveVolumeReque Status VolumeServiceImpl::Prune(ServerContext *context, const PruneVolumeRequest *request, PruneVolumeResponse *reply) { + if (context == nullptr || request == nullptr || reply == nullptr) { + ERROR("Invalid arguments"); + return Status(StatusCode::INVALID_ARGUMENT, "Invalid arguments"); + } + auto status = GrpcServerTlsAuth::auth(context, "volume_prune"); if (!status.ok()) { return status; diff --git a/src/daemon/entry/connect/rest/rest_service_common.c b/src/daemon/entry/connect/rest/rest_service_common.c index 54ac5c95..c4161d02 100644 --- a/src/daemon/entry/connect/rest/rest_service_common.c +++ b/src/daemon/entry/connect/rest/rest_service_common.c @@ -26,7 +26,7 @@ /* get body */ int get_body(const evhtp_request_t *req, size_t *size_out, char **record_out) { - evbuf_t *buf = req->buffer_in; + evbuf_t *buf = NULL; size_t read_count = 0; size_t total = 0; size_t content_len = 0; @@ -34,6 +34,12 @@ int get_body(const evhtp_request_t *req, size_t *size_out, char **record_out) char *body_p = NULL; int ret = 0; + if (req == NULL || size_out == NULL || record_out == NULL) { + ERROR("Invalid input arguments"); + return -1; + } + + buf = req->buffer_in; content_len = (size_t)evbuffer_get_length(buf); if (content_len >= MAX_BODY_SIZE) { @@ -81,6 +87,10 @@ empty: /* evhtp send repsponse */ void evhtp_send_response(evhtp_request_t *req, const char *responsedata, int rescode) { + if (req == NULL || responsedata == NULL) { + ERROR("Invalid input arguments"); + return; + } evhtp_headers_add_header(req->headers_out, evhtp_header_new("Content-Type", "application/json", 0, 0)); evbuffer_add(req->buffer_out, responsedata, strlen(responsedata)); evhtp_send_reply(req, rescode); diff --git a/src/daemon/entry/cri/network_plugin.h b/src/daemon/entry/cri/network_plugin.h index 09b0987a..3cb003ba 100644 --- a/src/daemon/entry/cri/network_plugin.h +++ b/src/daemon/entry/cri/network_plugin.h @@ -30,11 +30,11 @@ const std::string POD_DISABLE_DEFAULT_NET_ANNOTATION_KEY = "network.alpha.kubern class NetworkPluginConf { public: /* settings for net plugin */ - NetworkPluginConf(const std::string &dockershimRootDirectory = "/var/lib/isulad/shim", - const std::string &pluginConfDir = "/etc/cni/net.d/", - const std::string &pluginBinDir = "/opt/cni/bin", const std::string &pluginName = "", - const std::string &hairpinMode = "hairpin-veth", const std::string &nonMasqueradeCIDR = "", - int32_t mtu = 1460) + explicit NetworkPluginConf(const std::string &dockershimRootDirectory = "/var/lib/isulad/shim", + const std::string &pluginConfDir = "/etc/cni/net.d/", + const std::string &pluginBinDir = "/opt/cni/bin", const std::string &pluginName = "", + const std::string &hairpinMode = "hairpin-veth", const std::string &nonMasqueradeCIDR = "", + int32_t mtu = 1460) : m_dockershimRootDirectory(dockershimRootDirectory), m_pluginConfDir(pluginConfDir), m_pluginBinDir(pluginBinDir), diff --git a/src/daemon/entry/cri/v1/v1_cri_container_manager_service.cc b/src/daemon/entry/cri/v1/v1_cri_container_manager_service.cc index ba95f684..ecb7ffbd 100644 --- a/src/daemon/entry/cri/v1/v1_cri_container_manager_service.cc +++ b/src/daemon/entry/cri/v1/v1_cri_container_manager_service.cc @@ -653,7 +653,7 @@ void ContainerManagerService::ListContainersFromGRPC(const runtime::v1::Containe } void ContainerManagerService::ListContainersToGRPC(container_list_response *response, - std::vector> *containers, + std::vector> &containers, Errors &error) { for (size_t i {}; i < response->containers_len; i++) { @@ -700,12 +700,12 @@ void ContainerManagerService::ListContainersToGRPC(container_list_response *resp CRIHelpersV1::ContainerStatusToRuntime(Container_Status(response->containers[i]->status)); container->set_state(state); - containers->push_back(move(container)); + containers.push_back(move(container)); } } void ContainerManagerService::ListContainers(const runtime::v1::ContainerFilter *filter, - std::vector> *containers, + std::vector> &containers, Errors &error) { if (m_cb == nullptr || m_cb->container.list == nullptr) { @@ -856,7 +856,7 @@ void ContainerManagerService::PackContainerStatsFilesystemUsage( void ContainerManagerService::ContainerStatsToGRPC( container_stats_response *response, - std::vector> *containerstats, Errors &error) + std::vector> &containerstats, Errors &error) { if (response == nullptr) { return; @@ -906,22 +906,18 @@ void ContainerManagerService::ContainerStatsToGRPC( if (response->container_stats[i]->major_page_faults != 0u) { container->mutable_memory()->mutable_major_page_faults()->set_value(response->container_stats[i]->major_page_faults); } - containerstats->push_back(std::move(container)); + containerstats.push_back(std::move(container)); } } void ContainerManagerService::ListContainerStats( const runtime::v1::ContainerStatsFilter *filter, - std::vector> *containerstats, Errors &error) + std::vector> &containerstats, Errors &error) { if (m_cb == nullptr || m_cb->container.stats == nullptr) { error.SetError("Unimplemented callback"); return; } - if (containerstats == nullptr) { - error.SetError("Invalid arguments"); - return; - } container_stats_response *response { nullptr }; container_stats_request *request = (container_stats_request *)util_common_calloc_s(sizeof(container_stats_request)); @@ -998,7 +994,7 @@ auto ContainerManagerService::ContainerStats(const std::string &containerID, Err goto cleanup; } - ContainerStatsToGRPC(response, &contStatsVec, error); + ContainerStatsToGRPC(response, contStatsVec, error); if (error.NotEmpty()) { goto cleanup; } diff --git a/src/daemon/entry/cri/v1/v1_cri_container_manager_service.h b/src/daemon/entry/cri/v1/v1_cri_container_manager_service.h index 83f4acbe..4f349829 100644 --- a/src/daemon/entry/cri/v1/v1_cri_container_manager_service.h +++ b/src/daemon/entry/cri/v1/v1_cri_container_manager_service.h @@ -50,10 +50,10 @@ public: void RemoveContainer(const std::string &containerID, Errors &error); void ListContainers(const runtime::v1::ContainerFilter *filter, - std::vector> *containers, Errors &error); + std::vector> &containers, Errors &error); void ListContainerStats(const runtime::v1::ContainerStatsFilter *filter, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error); auto ContainerStats(const std::string &containerID, Errors &error) @@ -99,11 +99,11 @@ private: void ListContainersFromGRPC(const runtime::v1::ContainerFilter *filter, container_list_request **request, Errors &error); void ListContainersToGRPC(container_list_response *response, - std::vector> *pods, Errors &error); + std::vector> &pods, Errors &error); auto PackContainerStatsFilter(const runtime::v1::ContainerStatsFilter *filter, container_stats_request *request, Errors &error) -> int; void ContainerStatsToGRPC(container_stats_response *response, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error); void PackContainerStatsAttributes(const char *id, std::unique_ptr &container, Errors &error); diff --git a/src/daemon/entry/cri/v1/v1_cri_image_manager_service.h b/src/daemon/entry/cri/v1/v1_cri_image_manager_service.h index 66af0abe..3a5fdf8c 100644 --- a/src/daemon/entry/cri/v1/v1_cri_image_manager_service.h +++ b/src/daemon/entry/cri/v1/v1_cri_image_manager_service.h @@ -28,7 +28,7 @@ public: virtual ~ImageManagerService() = default; virtual void ListImages(const runtime::v1::ImageFilter &filter, - std::vector> *images, Errors &error) = 0; + std::vector> &images, Errors &error) = 0; virtual auto ImageStatus(const runtime::v1::ImageSpec &image, Errors &error) -> std::unique_ptr = 0; @@ -38,7 +38,7 @@ public: virtual void RemoveImage(const runtime::v1::ImageSpec &image, Errors &error) = 0; - virtual void ImageFsInfo(std::vector> *usages, + virtual void ImageFsInfo(std::vector> &usages, Errors &error) = 0; }; } // namespace CRIV1 diff --git a/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.cc b/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.cc index 763b6cd5..b74834fb 100644 --- a/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.cc +++ b/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.cc @@ -133,7 +133,7 @@ auto ImageManagerServiceImpl::list_request_from_grpc(const runtime::v1::ImageFil } void ImageManagerServiceImpl::list_images_to_grpc(im_list_response *response, - std::vector> *images, + std::vector> &images, Errors &error) { imagetool_images_list *list_images = response->images; @@ -150,12 +150,12 @@ void ImageManagerServiceImpl::list_images_to_grpc(im_list_response *response, imagetool_image_summary *element = list_images->images[i]; conv_image_to_grpc(element, image); - images->push_back(move(image)); + images.push_back(move(image)); } } void ImageManagerServiceImpl::ListImages(const runtime::v1::ImageFilter &filter, - std::vector> *images, Errors &error) + std::vector> &images, Errors &error) { im_list_request *request { nullptr }; im_list_response *response { nullptr }; @@ -331,7 +331,7 @@ cleanup: } void ImageManagerServiceImpl::fs_info_to_grpc(im_fs_info_response *response, - std::vector> *fs_infos, + std::vector> &fs_infos, Errors & /*error*/) { imagetool_fs_info *got_fs_info = response->fs_info; @@ -381,11 +381,11 @@ void ImageManagerServiceImpl::fs_info_to_grpc(im_fs_info_response *response, fs_info->set_allocated_inodes_used(inodes_used); } - fs_infos->push_back(std::move(fs_info)); + fs_infos.push_back(std::move(fs_info)); } } -void ImageManagerServiceImpl::ImageFsInfo(std::vector> *usages, +void ImageManagerServiceImpl::ImageFsInfo(std::vector> &usages, Errors &error) { im_fs_info_response *response { nullptr }; diff --git a/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.h b/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.h index 30e7c588..3f13a157 100644 --- a/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.h +++ b/src/daemon/entry/cri/v1/v1_cri_image_manager_service_impl.h @@ -30,7 +30,7 @@ public: virtual ~ImageManagerServiceImpl() = default; void ListImages(const runtime::v1::ImageFilter &filter, - std::vector> *images, Errors &error) override; + std::vector> &images, Errors &error) override; std::unique_ptr ImageStatus(const runtime::v1::ImageSpec &image, Errors &error) override; @@ -40,7 +40,7 @@ public: void RemoveImage(const runtime::v1::ImageSpec &image, Errors &error) override; - void ImageFsInfo(std::vector> *usages, Errors &error) override; + void ImageFsInfo(std::vector> &usages, Errors &error) override; private: int pull_request_from_grpc(const runtime::v1::ImageSpec *image, const runtime::v1::AuthConfig *auth, @@ -48,7 +48,7 @@ private: int list_request_from_grpc(const runtime::v1::ImageFilter *filter, im_list_request **request, Errors &error); - void list_images_to_grpc(im_list_response *response, std::vector> *images, + void list_images_to_grpc(im_list_response *response, std::vector> &images, Errors &error); int status_request_from_grpc(const runtime::v1::ImageSpec *image, im_summary_request **request, @@ -57,7 +57,7 @@ private: std::unique_ptr status_image_to_grpc(im_summary_response *response, Errors &error); void fs_info_to_grpc(im_fs_info_response *response, - std::vector> *fs_infos, Errors &error); + std::vector> &fs_infos, Errors &error); int remove_request_from_grpc(const runtime::v1::ImageSpec *image, im_rmi_request **request, Errors &error); }; diff --git a/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc b/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc index 687f4e6d..d57338c8 100644 --- a/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc +++ b/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.cc @@ -915,7 +915,7 @@ void PodSandboxManagerService::PackagePodSandboxContainerStats( runtime::v1::ContainerStatsFilter filter; filter.set_pod_sandbox_id(id); - containerManager->ListContainerStats(&filter, &containerStats, error); + containerManager->ListContainerStats(&filter, containerStats, error); if (error.NotEmpty()) { error.Errorf("Failed to list container stats: %s", error.GetCMessage()); return; @@ -1140,7 +1140,7 @@ cleanup: void PodSandboxManagerService::ListPodSandboxStats(const runtime::v1::PodSandboxStatsFilter *filter, const std::unique_ptr &containerManager, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) { std::vector podSandboxIDs; @@ -1165,7 +1165,7 @@ void PodSandboxManagerService::ListPodSandboxStats(const runtime::v1::PodSandbox continue; } - podsStats->push_back(move(podStats)); + podsStats.push_back(move(podStats)); } } diff --git a/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.h b/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.h index ddab6f4e..99347fd8 100644 --- a/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.h +++ b/src/daemon/entry/cri/v1/v1_cri_pod_sandbox_manager_service.h @@ -66,7 +66,7 @@ public: void ListPodSandboxStats(const runtime::v1::PodSandboxStatsFilter *filter, const std::unique_ptr &containerManager, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error); void PortForward(const runtime::v1::PortForwardRequest &req, runtime::v1::PortForwardResponse *resp, diff --git a/src/daemon/entry/cri/v1/v1_cri_runtime_service.h b/src/daemon/entry/cri/v1/v1_cri_runtime_service.h index cd7c52db..87394173 100644 --- a/src/daemon/entry/cri/v1/v1_cri_runtime_service.h +++ b/src/daemon/entry/cri/v1/v1_cri_runtime_service.h @@ -43,10 +43,10 @@ public: virtual void RemoveContainer(const std::string &containerID, Errors &error) = 0; virtual void ListContainers(const runtime::v1::ContainerFilter *filter, - std::vector> *containers, Errors &error) = 0; + std::vector> &containers, Errors &error) = 0; virtual void ListContainerStats(const runtime::v1::ContainerStatsFilter *filter, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error) = 0; virtual auto ContainerStats(const std::string &containerID, @@ -80,7 +80,7 @@ public: Errors &error) -> std::unique_ptr = 0; virtual void ListPodSandboxStats(const runtime::v1::PodSandboxStatsFilter *filter, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) = 0; virtual void UpdateContainerResources(const std::string &containerID, diff --git a/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.cc b/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.cc index b6652f7d..67cda5ed 100644 --- a/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.cc +++ b/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.cc @@ -57,7 +57,7 @@ void CRIRuntimeServiceImpl::RemoveContainer(const std::string &containerID, Erro } void CRIRuntimeServiceImpl::ListContainers(const runtime::v1::ContainerFilter *filter, - std::vector> *containers, + std::vector> &containers, Errors &error) { m_containerManager->ListContainers(filter, containers, error); @@ -65,7 +65,7 @@ void CRIRuntimeServiceImpl::ListContainers(const runtime::v1::ContainerFilter *f void CRIRuntimeServiceImpl::ListContainerStats( const runtime::v1::ContainerStatsFilter *filter, - std::vector> *containerstats, Errors &error) + std::vector> &containerstats, Errors &error) { m_containerManager->ListContainerStats(filter, containerstats, error); } @@ -145,7 +145,7 @@ auto CRIRuntimeServiceImpl::PodSandboxStats(const std::string &podSandboxID, Err void CRIRuntimeServiceImpl::ListPodSandboxStats(const runtime::v1::PodSandboxStatsFilter *filter, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) { m_podSandboxManager->ListPodSandboxStats(filter, m_containerManager, podsStats, error); diff --git a/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.h b/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.h index 49272281..23866648 100644 --- a/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.h +++ b/src/daemon/entry/cri/v1/v1_cri_runtime_service_impl.h @@ -45,10 +45,10 @@ public: void RemoveContainer(const std::string &containerID, Errors &error) override; void ListContainers(const runtime::v1::ContainerFilter *filter, - std::vector> *containers, Errors &error) override; + std::vector> &containers, Errors &error) override; void ListContainerStats(const runtime::v1::ContainerStatsFilter *filter, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error) override; auto ContainerStats(const std::string &containerID, Errors &error) @@ -82,7 +82,7 @@ public: Errors &error) -> std::unique_ptr override; void ListPodSandboxStats(const runtime::v1::PodSandboxStatsFilter *filter, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) override; void UpdateContainerResources(const std::string &containerID, diff --git a/src/daemon/entry/cri/v1alpha/cri_container_manager_service.cc b/src/daemon/entry/cri/v1alpha/cri_container_manager_service.cc index 569f339b..b4faab95 100644 --- a/src/daemon/entry/cri/v1alpha/cri_container_manager_service.cc +++ b/src/daemon/entry/cri/v1alpha/cri_container_manager_service.cc @@ -671,7 +671,7 @@ void ContainerManagerService::ListContainersFromGRPC(const runtime::v1alpha2::Co } void ContainerManagerService::ListContainersToGRPC(container_list_response *response, - std::vector> *pods, + std::vector> &pods, Errors &error) { for (size_t i {}; i < response->containers_len; i++) { @@ -718,12 +718,12 @@ void ContainerManagerService::ListContainersToGRPC(container_list_response *resp CRIHelpersV1Alpha::ContainerStatusToRuntime(Container_Status(response->containers[i]->status)); container->set_state(state); - pods->push_back(move(container)); + pods.push_back(move(container)); } } void ContainerManagerService::ListContainers(const runtime::v1alpha2::ContainerFilter *filter, - std::vector> *containers, + std::vector> &containers, Errors &error) { if (m_cb == nullptr || m_cb->container.list == nullptr) { @@ -874,7 +874,7 @@ void ContainerManagerService::PackContainerStatsFilesystemUsage( void ContainerManagerService::ContainerStatsToGRPC( container_stats_response *response, - std::vector> *containerstats, Errors &error) + std::vector> &containerstats, Errors &error) { if (response == nullptr) { return; @@ -924,22 +924,18 @@ void ContainerManagerService::ContainerStatsToGRPC( if (response->container_stats[i]->major_page_faults != 0u) { container->mutable_memory()->mutable_major_page_faults()->set_value(response->container_stats[i]->major_page_faults); } - containerstats->push_back(std::move(container)); + containerstats.push_back(std::move(container)); } } void ContainerManagerService::ListContainerStats( const runtime::v1alpha2::ContainerStatsFilter *filter, - std::vector> *containerstats, Errors &error) + std::vector> &containerstats, Errors &error) { if (m_cb == nullptr || m_cb->container.stats == nullptr) { error.SetError("Unimplemented callback"); return; } - if (containerstats == nullptr) { - error.SetError("Invalid arguments"); - return; - } container_stats_response *response { nullptr }; container_stats_request *request = (container_stats_request *)util_common_calloc_s(sizeof(container_stats_request)); @@ -1016,7 +1012,7 @@ auto ContainerManagerService::ContainerStats(const std::string &containerID, Err goto cleanup; } - ContainerStatsToGRPC(response, &contStatsVec, error); + ContainerStatsToGRPC(response, contStatsVec, error); if (error.NotEmpty()) { goto cleanup; } diff --git a/src/daemon/entry/cri/v1alpha/cri_container_manager_service.h b/src/daemon/entry/cri/v1alpha/cri_container_manager_service.h index ea22b1cd..f802d3bc 100644 --- a/src/daemon/entry/cri/v1alpha/cri_container_manager_service.h +++ b/src/daemon/entry/cri/v1alpha/cri_container_manager_service.h @@ -47,10 +47,10 @@ public: void RemoveContainer(const std::string &containerID, Errors &error); void ListContainers(const runtime::v1alpha2::ContainerFilter *filter, - std::vector> *containers, Errors &error); + std::vector> &containers, Errors &error); void ListContainerStats(const runtime::v1alpha2::ContainerStatsFilter *filter, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error); auto ContainerStats(const std::string &containerID, Errors &error) @@ -97,11 +97,11 @@ private: void ListContainersFromGRPC(const runtime::v1alpha2::ContainerFilter *filter, container_list_request **request, Errors &error); void ListContainersToGRPC(container_list_response *response, - std::vector> *pods, Errors &error); + std::vector> &pods, Errors &error); auto PackContainerStatsFilter(const runtime::v1alpha2::ContainerStatsFilter *filter, container_stats_request *request, Errors &error) -> int; void ContainerStatsToGRPC(container_stats_response *response, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error); void PackContainerStatsAttributes(const char *id, std::unique_ptr &container, Errors &error); diff --git a/src/daemon/entry/cri/v1alpha/cri_image_manager_service.h b/src/daemon/entry/cri/v1alpha/cri_image_manager_service.h index b6e506d5..9b2530ab 100644 --- a/src/daemon/entry/cri/v1alpha/cri_image_manager_service.h +++ b/src/daemon/entry/cri/v1alpha/cri_image_manager_service.h @@ -28,7 +28,7 @@ public: virtual ~ImageManagerService() = default; virtual void ListImages(const runtime::v1alpha2::ImageFilter &filter, - std::vector> *images, Errors &error) = 0; + std::vector> &images, Errors &error) = 0; virtual auto ImageStatus(const runtime::v1alpha2::ImageSpec &image, Errors &error) -> std::unique_ptr = 0; @@ -38,7 +38,7 @@ public: virtual void RemoveImage(const runtime::v1alpha2::ImageSpec &image, Errors &error) = 0; - virtual void ImageFsInfo(std::vector> *usages, + virtual void ImageFsInfo(std::vector> &usages, Errors &error) = 0; }; } // namespace CRI diff --git a/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.cc b/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.cc index ad9e8ef1..3ff79ffc 100644 --- a/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.cc +++ b/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.cc @@ -133,7 +133,7 @@ auto ImageManagerServiceImpl::list_request_from_grpc(const runtime::v1alpha2::Im } void ImageManagerServiceImpl::list_images_to_grpc(im_list_response *response, - std::vector> *images, + std::vector> &images, Errors &error) { imagetool_images_list *list_images = response->images; @@ -150,12 +150,12 @@ void ImageManagerServiceImpl::list_images_to_grpc(im_list_response *response, imagetool_image_summary *element = list_images->images[i]; conv_image_to_grpc(element, image); - images->push_back(move(image)); + images.push_back(move(image)); } } void ImageManagerServiceImpl::ListImages(const runtime::v1alpha2::ImageFilter &filter, - std::vector> *images, Errors &error) + std::vector> &images, Errors &error) { im_list_request *request { nullptr }; im_list_response *response { nullptr }; @@ -331,7 +331,7 @@ cleanup: } void ImageManagerServiceImpl::fs_info_to_grpc(im_fs_info_response *response, - std::vector> *fs_infos, + std::vector> &fs_infos, Errors & /*error*/) { imagetool_fs_info *got_fs_info = response->fs_info; @@ -381,11 +381,11 @@ void ImageManagerServiceImpl::fs_info_to_grpc(im_fs_info_response *response, fs_info->set_allocated_inodes_used(inodes_used); } - fs_infos->push_back(std::move(fs_info)); + fs_infos.push_back(std::move(fs_info)); } } -void ImageManagerServiceImpl::ImageFsInfo(std::vector> *usages, +void ImageManagerServiceImpl::ImageFsInfo(std::vector> &usages, Errors &error) { im_fs_info_response *response { nullptr }; diff --git a/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.h b/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.h index b94f8908..edf482c9 100644 --- a/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.h +++ b/src/daemon/entry/cri/v1alpha/cri_image_manager_service_impl.h @@ -30,7 +30,7 @@ public: virtual ~ImageManagerServiceImpl() = default; void ListImages(const runtime::v1alpha2::ImageFilter &filter, - std::vector> *images, Errors &error) override; + std::vector> &images, Errors &error) override; std::unique_ptr ImageStatus(const runtime::v1alpha2::ImageSpec &image, Errors &error) override; @@ -40,7 +40,7 @@ public: void RemoveImage(const runtime::v1alpha2::ImageSpec &image, Errors &error) override; - void ImageFsInfo(std::vector> *usages, Errors &error) override; + void ImageFsInfo(std::vector> &usages, Errors &error) override; private: int pull_request_from_grpc(const runtime::v1alpha2::ImageSpec *image, const runtime::v1alpha2::AuthConfig *auth, @@ -48,7 +48,7 @@ private: int list_request_from_grpc(const runtime::v1alpha2::ImageFilter *filter, im_list_request **request, Errors &error); - void list_images_to_grpc(im_list_response *response, std::vector> *images, + void list_images_to_grpc(im_list_response *response, std::vector> &images, Errors &error); int status_request_from_grpc(const runtime::v1alpha2::ImageSpec *image, im_summary_request **request, @@ -57,7 +57,7 @@ private: std::unique_ptr status_image_to_grpc(im_summary_response *response, Errors &error); void fs_info_to_grpc(im_fs_info_response *response, - std::vector> *fs_infos, Errors &error); + std::vector> &fs_infos, Errors &error); int remove_request_from_grpc(const runtime::v1alpha2::ImageSpec *image, im_rmi_request **request, Errors &error); }; diff --git a/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc b/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc index d23e7754..c24c1f69 100644 --- a/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc +++ b/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.cc @@ -1246,7 +1246,7 @@ void PodSandboxManagerService::ListPodSandboxFromGRPC(const runtime::v1alpha2::P } void PodSandboxManagerService::ListPodSandboxToGRPC(container_list_response *response, - std::vector> *pods, + std::vector> &pods, bool filterOutReadySandboxes, Errors &error) { for (size_t i = 0; i < response->containers_len; i++) { @@ -1272,12 +1272,12 @@ void PodSandboxManagerService::ListPodSandboxToGRPC(container_list_response *res continue; } - pods->push_back(std::move(pod)); + pods.push_back(std::move(pod)); } } void PodSandboxManagerService::ListPodSandbox(const runtime::v1alpha2::PodSandboxFilter *filter, - std::vector> *pods, + std::vector> &pods, Errors &error) { int ret = 0; @@ -1464,7 +1464,7 @@ void PodSandboxManagerService::PackagePodSandboxContainerStats( runtime::v1alpha2::ContainerStatsFilter filter; filter.set_pod_sandbox_id(id); - containerManager->ListContainerStats(&filter, &containerStats, error); + containerManager->ListContainerStats(&filter, containerStats, error); if (error.NotEmpty()) { error.Errorf("Failed to list container stats: %s", error.GetCMessage()); return; @@ -1689,7 +1689,7 @@ cleanup: void PodSandboxManagerService::ListPodSandboxStats(const runtime::v1alpha2::PodSandboxStatsFilter *filter, const std::unique_ptr &containerManager, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) { std::vector podSandboxIDs; @@ -1714,7 +1714,7 @@ void PodSandboxManagerService::ListPodSandboxStats(const runtime::v1alpha2::PodS continue; } - podsStats->push_back(move(podStats)); + podsStats.push_back(move(podStats)); } } diff --git a/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.h b/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.h index 2f4505df..1a075f86 100644 --- a/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.h +++ b/src/daemon/entry/cri/v1alpha/cri_pod_sandbox_manager_service.h @@ -57,7 +57,7 @@ public: -> std::unique_ptr; void ListPodSandbox(const runtime::v1alpha2::PodSandboxFilter *filter, - std::vector> *pods, Errors &error); + std::vector> &pods, Errors &error); auto PodSandboxStats(const std::string &podSandboxID, const std::unique_ptr &containerManager, @@ -65,7 +65,7 @@ public: void ListPodSandboxStats(const runtime::v1alpha2::PodSandboxStatsFilter *filter, const std::unique_ptr &containerManager, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error); void PortForward(const runtime::v1alpha2::PortForwardRequest &req, runtime::v1alpha2::PortForwardResponse *resp, @@ -130,7 +130,7 @@ private: void ListPodSandboxFromGRPC(const runtime::v1alpha2::PodSandboxFilter *filter, container_list_request **request, bool *filterOutReadySandboxes, Errors &error); void ListPodSandboxToGRPC(container_list_response *response, - std::vector> *pods, + std::vector> &pods, bool filterOutReadySandboxes, Errors &error); void UpdatePodSandboxNetworkSettings(const std::string &id, const std::string &json, Errors &error); auto GetNsenterPath(Errors &error) -> std::string; diff --git a/src/daemon/entry/cri/v1alpha/cri_runtime_service.h b/src/daemon/entry/cri/v1alpha/cri_runtime_service.h index d157237c..79f61a44 100644 --- a/src/daemon/entry/cri/v1alpha/cri_runtime_service.h +++ b/src/daemon/entry/cri/v1alpha/cri_runtime_service.h @@ -43,10 +43,10 @@ public: virtual void RemoveContainer(const std::string &containerID, Errors &error) = 0; virtual void ListContainers(const runtime::v1alpha2::ContainerFilter *filter, - std::vector> *containers, Errors &error) = 0; + std::vector> &containers, Errors &error) = 0; virtual void ListContainerStats(const runtime::v1alpha2::ContainerStatsFilter *filter, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error) = 0; virtual auto ContainerStats(const std::string &containerID, @@ -74,13 +74,13 @@ public: Errors &error) -> std::unique_ptr = 0; virtual void ListPodSandbox(const runtime::v1alpha2::PodSandboxFilter *filter, - std::vector> *pods, Errors &error) = 0; + std::vector> &pods, Errors &error) = 0; virtual auto PodSandboxStats(const std::string &podSandboxID, Errors &error) -> std::unique_ptr = 0; virtual void ListPodSandboxStats(const runtime::v1alpha2::PodSandboxStatsFilter *filter, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) = 0; virtual void UpdateContainerResources(const std::string &containerID, diff --git a/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.cc b/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.cc index 778b0b69..d50e23e9 100644 --- a/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.cc +++ b/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.cc @@ -57,7 +57,7 @@ void CRIRuntimeServiceImpl::RemoveContainer(const std::string &containerID, Erro } void CRIRuntimeServiceImpl::ListContainers(const runtime::v1alpha2::ContainerFilter *filter, - std::vector> *containers, + std::vector> &containers, Errors &error) { m_containerManager->ListContainers(filter, containers, error); @@ -65,7 +65,7 @@ void CRIRuntimeServiceImpl::ListContainers(const runtime::v1alpha2::ContainerFil void CRIRuntimeServiceImpl::ListContainerStats( const runtime::v1alpha2::ContainerStatsFilter *filter, - std::vector> *containerstats, Errors &error) + std::vector> &containerstats, Errors &error) { m_containerManager->ListContainerStats(filter, containerstats, error); } @@ -131,7 +131,7 @@ auto CRIRuntimeServiceImpl::PodSandboxStatus(const std::string &podSandboxID, Er } void CRIRuntimeServiceImpl::ListPodSandbox(const runtime::v1alpha2::PodSandboxFilter *filter, - std::vector> *pods, + std::vector> &pods, Errors &error) { m_podSandboxManager->ListPodSandbox(filter, pods, error); @@ -145,7 +145,7 @@ auto CRIRuntimeServiceImpl::PodSandboxStats(const std::string &podSandboxID, Err void CRIRuntimeServiceImpl::ListPodSandboxStats(const runtime::v1alpha2::PodSandboxStatsFilter *filter, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) { m_podSandboxManager->ListPodSandboxStats(filter, m_containerManager, podsStats, error); diff --git a/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.h b/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.h index f2323524..23c8a400 100644 --- a/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.h +++ b/src/daemon/entry/cri/v1alpha/cri_runtime_service_impl.h @@ -45,10 +45,10 @@ public: void RemoveContainer(const std::string &containerID, Errors &error) override; void ListContainers(const runtime::v1alpha2::ContainerFilter *filter, - std::vector> *containers, Errors &error) override; + std::vector> &containers, Errors &error) override; void ListContainerStats(const runtime::v1alpha2::ContainerStatsFilter *filter, - std::vector> *containerstats, + std::vector> &containerstats, Errors &error) override; auto ContainerStats(const std::string &containerID, Errors &error) @@ -76,13 +76,13 @@ public: -> std::unique_ptr override; void ListPodSandbox(const runtime::v1alpha2::PodSandboxFilter *filter, - std::vector> *pods, Errors &error) override; + std::vector> &pods, Errors &error) override; auto PodSandboxStats(const std::string &podSandboxID, Errors &error) -> std::unique_ptr override; void ListPodSandboxStats(const runtime::v1alpha2::PodSandboxStatsFilter *filter, - std::vector> *podsStats, + std::vector> &podsStats, Errors &error) override; void UpdateContainerResources(const std::string &containerID, -- 2.40.1