iSulad/0116-2129-Limit-the-response-size-of-ExecSync.patch
openeuler-sync-bot ac7f14ac9b !607 [sync] PR-606: code improvements and bugfix for code review
* code improvements and bugfix for code review
2023-08-26 10:10:17 +00:00

32 lines
1.2 KiB
Diff

From df06219fd70592e049d392a03662ace9d40c2988 Mon Sep 17 00:00:00 2001
From: jake <jikai11@huawei.com>
Date: Thu, 24 Aug 2023 02:20:23 +0000
Subject: [PATCH 10/10] !2129 Limit the response size of ExecSync * Limit the
response size of ExecSync
---
src/daemon/entry/cri/cri_container_manager_service_impl.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/daemon/entry/cri/cri_container_manager_service_impl.cc b/src/daemon/entry/cri/cri_container_manager_service_impl.cc
index 101824ae..ed9e8e72 100644
--- a/src/daemon/entry/cri/cri_container_manager_service_impl.cc
+++ b/src/daemon/entry/cri/cri_container_manager_service_impl.cc
@@ -1316,7 +1316,13 @@ static auto WriteToString(void *context, const void *data, size_t len) -> ssize_
return 0;
}
+ // Limit the response size of ExecSync, outside of the response limit will never be seen
+ // Allow last write to exceed the limited size since every single write has a limit len
+ const size_t max_stream_size = 1024 * 1024 * 16;
std::string *str = reinterpret_cast<std::string *>(context);
+ if (str->length() >= max_stream_size) {
+ return (ssize_t)len;
+ }
str->append(reinterpret_cast<const char *>(data), len);
return (ssize_t)len;
--
2.25.1