From 578aa921a0fa74cf87559b5bb8be252ba63ad9c6 Mon Sep 17 00:00:00 2001 From: xushengbin Date: Tue, 4 Mar 2025 03:14:16 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=E6=94=AF=E6=8C=81FDSAN=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E8=83=BD=E5=8A=9B=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xushengbin --- .../frame_aware_policy/src/intellisense_server.cpp | 5 +++-- interfaces/innerkits/frameintf/rtg_interface.cpp | 6 ++++-- qos_manager/src/qos_common.cpp | 11 +++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp index a09805e..737ed09 100644 --- a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp +++ b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp @@ -384,7 +384,8 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) struct rtg_grp_data grp_data; int ret; char fileName[] = "/proc/self/sched_rtg_ctrl"; - int fd = open(fileName, O_RDWR); + FILE* f = fopen(fileName, "w+"); + int fd = fileno(f); if (fd < 0) { RME_LOGE("Open file /proc/self/sched_rth_ctrl, errno = %{public}d", errno); return fd; @@ -403,7 +404,7 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) } else { RME_LOGI("create rtg grp success, get rtg id %{public}d.", ret); } - close(fd); + fclose(f); return ret; } } // namespace RME diff --git a/interfaces/innerkits/frameintf/rtg_interface.cpp b/interfaces/innerkits/frameintf/rtg_interface.cpp index 3677b6f..37f8f4e 100644 --- a/interfaces/innerkits/frameintf/rtg_interface.cpp +++ b/interfaces/innerkits/frameintf/rtg_interface.cpp @@ -36,6 +36,7 @@ constexpr size_t MAX_LENGTH = 100; const char RTG_SCHED_IPC_MAGIC = 0xAB; static int g_fd = -1; +static FILE* fd = nullptr; #define CMD_ID_SET_ENABLE \ _IOWR(RTG_SCHED_IPC_MAGIC, SET_ENABLE, struct rtg_enable_data) @@ -65,7 +66,8 @@ static int g_fd = -1; __attribute__((constructor)) void BasicOpenRtgNode() { char fileName[] = "/proc/self/sched_rtg_ctrl"; - g_fd = open(fileName, O_RDWR); + fd = fopen(fileName, "w+"); + g_fd = fileno(fd); if (g_fd < 0) { RME_LOGI("rtg Open fail, errno = %{public}d(%{public}s), dev = %{public}s", errno, strerror(errno), fileName); return; @@ -80,7 +82,7 @@ __attribute__((destructor)) void BasicCloseRtgNode() return; } RME_LOGI("rtg Close g_fd ret is %{public}d", g_fd); - close(g_fd); + fclose(fd); g_fd = -1; } diff --git a/qos_manager/src/qos_common.cpp b/qos_manager/src/qos_common.cpp index 364413d..00fc505 100644 --- a/qos_manager/src/qos_common.cpp +++ b/qos_manager/src/qos_common.cpp @@ -28,10 +28,13 @@ constexpr unsigned int AF_QOS_DELEGATED = 0x0001; namespace OHOS { namespace QosCommon { +static FILE* f = nullptr; + static int TrivalOpenAuthCtrlNode(void) { char fileName[] = "/dev/auth_ctrl"; - int fd = open(fileName, O_RDWR); + f = fopen(fileName, "w+"); + int fd = fileno(f); return fd; } @@ -57,7 +60,7 @@ int AuthEnable(int pid, unsigned int flag, unsigned int status) if (ret < 0) { RME_LOGE("auth enable failed for pid %{public}d with status %{public}u\n", pid, status); } - close(fd); + fclose(f); return ret; } @@ -83,7 +86,7 @@ int AuthPause(int pid) if (ret < 0) { RME_LOGE("auth pause failed for pid %{public}d\n", pid); } - close(fd); + fclose(f); return ret; } @@ -106,7 +109,7 @@ int AuthDelete(int pid) if (ret < 0) { RME_LOGE("auth delete failed for pid %{public}d\n", pid); } - close(fd); + fclose(f); return ret; } -- Gitee From 2d10c9a70c9cbfa8cc39962958b469085ebc6dc2 Mon Sep 17 00:00:00 2001 From: xushengbin Date: Wed, 5 Mar 2025 02:45:32 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=E6=94=AF=E6=8C=81FDSAN=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E8=83=BD=E5=8A=9B=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xushengbin --- .../src/intellisense_server.cpp | 5 ++++- interfaces/innerkits/frameintf/rtg_interface.cpp | 15 ++++++++++----- qos_manager/src/qos_common.cpp | 10 +++++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp index 737ed09..f36d9f7 100644 --- a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp +++ b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp @@ -385,9 +385,12 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) int ret; char fileName[] = "/proc/self/sched_rtg_ctrl"; FILE* f = fopen(fileName, "w+"); + if (f == nullptr) { + RME_LOGE("Open file /proc/self/sched_rth_ctrl, errno = %{public}d", errno); + return -1; + } int fd = fileno(f); if (fd < 0) { - RME_LOGE("Open file /proc/self/sched_rth_ctrl, errno = %{public}d", errno); return fd; } (void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data)); diff --git a/interfaces/innerkits/frameintf/rtg_interface.cpp b/interfaces/innerkits/frameintf/rtg_interface.cpp index 37f8f4e..447498c 100644 --- a/interfaces/innerkits/frameintf/rtg_interface.cpp +++ b/interfaces/innerkits/frameintf/rtg_interface.cpp @@ -36,7 +36,6 @@ constexpr size_t MAX_LENGTH = 100; const char RTG_SCHED_IPC_MAGIC = 0xAB; static int g_fd = -1; -static FILE* fd = nullptr; #define CMD_ID_SET_ENABLE \ _IOWR(RTG_SCHED_IPC_MAGIC, SET_ENABLE, struct rtg_enable_data) @@ -66,10 +65,13 @@ static FILE* fd = nullptr; __attribute__((constructor)) void BasicOpenRtgNode() { char fileName[] = "/proc/self/sched_rtg_ctrl"; - fd = fopen(fileName, "w+"); + FILE* fd = fopen(fileName, "w+"); + if (fd == nullptr) { + RME_LOGI("rtg Open fail, errno = %{public}d(%{public}s), dev = %{public}s", errno, strerror(errno), fileName); + return; + } g_fd = fileno(fd); if (g_fd < 0) { - RME_LOGI("rtg Open fail, errno = %{public}d(%{public}s), dev = %{public}s", errno, strerror(errno), fileName); return; } RME_LOGI("rtg Open success"); @@ -81,8 +83,11 @@ __attribute__((destructor)) void BasicCloseRtgNode() if (g_fd < 0) { return; } - RME_LOGI("rtg Close g_fd ret is %{public}d", g_fd); - fclose(fd); + FILE* fd = fdopen(g_fd, "w+"); + if (fd != nullptr) { + RME_LOGI("rtg Close g_fd ret is %{public}d", g_fd); + fclose(fd); + } g_fd = -1; } diff --git a/qos_manager/src/qos_common.cpp b/qos_manager/src/qos_common.cpp index 00fc505..2052306 100644 --- a/qos_manager/src/qos_common.cpp +++ b/qos_manager/src/qos_common.cpp @@ -28,12 +28,13 @@ constexpr unsigned int AF_QOS_DELEGATED = 0x0001; namespace OHOS { namespace QosCommon { -static FILE* f = nullptr; - static int TrivalOpenAuthCtrlNode(void) { char fileName[] = "/dev/auth_ctrl"; - f = fopen(fileName, "w+"); + FILE* f = fopen(fileName, "w+"); + if (f == nullptr) { + return -1; + } int fd = fileno(f); return fd; } @@ -60,6 +61,7 @@ int AuthEnable(int pid, unsigned int flag, unsigned int status) if (ret < 0) { RME_LOGE("auth enable failed for pid %{public}d with status %{public}u\n", pid, status); } + FILE* f = fdopen(fd, "w+"); fclose(f); return ret; } @@ -86,6 +88,7 @@ int AuthPause(int pid) if (ret < 0) { RME_LOGE("auth pause failed for pid %{public}d\n", pid); } + FILE* f = fdopen(fd, "w+"); fclose(f); return ret; } @@ -109,6 +112,7 @@ int AuthDelete(int pid) if (ret < 0) { RME_LOGE("auth delete failed for pid %{public}d\n", pid); } + FILE* f = fdopen(fd, "w+"); fclose(f); return ret; } -- Gitee From f8493b6c3a9948c6028701dde0c5b1af7d4c9874 Mon Sep 17 00:00:00 2001 From: xushengbin Date: Wed, 5 Mar 2025 10:58:59 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=89=93=E5=BC=80=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xushengbin --- .../core/frame_aware_policy/src/intellisense_server.cpp | 2 +- interfaces/innerkits/frameintf/rtg_interface.cpp | 4 ++-- qos_manager/src/qos_common.cpp | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp index f36d9f7..d097c66 100644 --- a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp +++ b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp @@ -384,7 +384,7 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) struct rtg_grp_data grp_data; int ret; char fileName[] = "/proc/self/sched_rtg_ctrl"; - FILE* f = fopen(fileName, "w+"); + FILE* f = fopen(fileName, "r+"); if (f == nullptr) { RME_LOGE("Open file /proc/self/sched_rth_ctrl, errno = %{public}d", errno); return -1; diff --git a/interfaces/innerkits/frameintf/rtg_interface.cpp b/interfaces/innerkits/frameintf/rtg_interface.cpp index 447498c..9d07449 100644 --- a/interfaces/innerkits/frameintf/rtg_interface.cpp +++ b/interfaces/innerkits/frameintf/rtg_interface.cpp @@ -65,7 +65,7 @@ static int g_fd = -1; __attribute__((constructor)) void BasicOpenRtgNode() { char fileName[] = "/proc/self/sched_rtg_ctrl"; - FILE* fd = fopen(fileName, "w+"); + FILE* fd = fopen(fileName, "r+"); if (fd == nullptr) { RME_LOGI("rtg Open fail, errno = %{public}d(%{public}s), dev = %{public}s", errno, strerror(errno), fileName); return; @@ -83,7 +83,7 @@ __attribute__((destructor)) void BasicCloseRtgNode() if (g_fd < 0) { return; } - FILE* fd = fdopen(g_fd, "w+"); + FILE* fd = fdopen(g_fd, "r+"); if (fd != nullptr) { RME_LOGI("rtg Close g_fd ret is %{public}d", g_fd); fclose(fd); diff --git a/qos_manager/src/qos_common.cpp b/qos_manager/src/qos_common.cpp index 2052306..02bf87a 100644 --- a/qos_manager/src/qos_common.cpp +++ b/qos_manager/src/qos_common.cpp @@ -31,7 +31,7 @@ namespace QosCommon { static int TrivalOpenAuthCtrlNode(void) { char fileName[] = "/dev/auth_ctrl"; - FILE* f = fopen(fileName, "w+"); + FILE* f = fopen(fileName, "r+"); if (f == nullptr) { return -1; } @@ -61,7 +61,7 @@ int AuthEnable(int pid, unsigned int flag, unsigned int status) if (ret < 0) { RME_LOGE("auth enable failed for pid %{public}d with status %{public}u\n", pid, status); } - FILE* f = fdopen(fd, "w+"); + FILE* f = fdopen(fd, "r+"); fclose(f); return ret; } @@ -88,7 +88,7 @@ int AuthPause(int pid) if (ret < 0) { RME_LOGE("auth pause failed for pid %{public}d\n", pid); } - FILE* f = fdopen(fd, "w+"); + FILE* f = fdopen(fd, "r+"); fclose(f); return ret; } @@ -112,7 +112,7 @@ int AuthDelete(int pid) if (ret < 0) { RME_LOGE("auth delete failed for pid %{public}d\n", pid); } - FILE* f = fdopen(fd, "w+"); + FILE* f = fdopen(fd, "r+"); fclose(f); return ret; } -- Gitee From f891acab4dcd170b74ab2b6ae8c9ccbb3706366f Mon Sep 17 00:00:00 2001 From: xushengbin Date: Thu, 6 Mar 2025 01:33:21 +0000 Subject: [PATCH 4/5] =?UTF-8?q?=E6=94=AF=E6=8C=81FDSAN=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xushengbin --- qos_manager/src/qos_common.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/qos_manager/src/qos_common.cpp b/qos_manager/src/qos_common.cpp index 02bf87a..5efe241 100644 --- a/qos_manager/src/qos_common.cpp +++ b/qos_manager/src/qos_common.cpp @@ -62,7 +62,9 @@ int AuthEnable(int pid, unsigned int flag, unsigned int status) RME_LOGE("auth enable failed for pid %{public}d with status %{public}u\n", pid, status); } FILE* f = fdopen(fd, "r+"); - fclose(f); + if (f != nullptr) { + fclose(f); + } return ret; } @@ -89,7 +91,9 @@ int AuthPause(int pid) RME_LOGE("auth pause failed for pid %{public}d\n", pid); } FILE* f = fdopen(fd, "r+"); - fclose(f); + if (f != nullptr) { + fclose(f); + } return ret; } @@ -113,7 +117,9 @@ int AuthDelete(int pid) RME_LOGE("auth delete failed for pid %{public}d\n", pid); } FILE* f = fdopen(fd, "r+"); - fclose(f); + if (f != nullptr) { + fclose(f); + } return ret; } -- Gitee From ef97ea4fdd9e114c9f5e192419171d4ac193734e Mon Sep 17 00:00:00 2001 From: xushengbin Date: Thu, 6 Mar 2025 01:55:54 +0000 Subject: [PATCH 5/5] =?UTF-8?q?=E6=94=AF=E6=8C=81FDSAN=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xushengbin --- .../core/frame_aware_policy/src/intellisense_server.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp index d097c66..a8e348b 100644 --- a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp +++ b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp @@ -407,7 +407,10 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) } else { RME_LOGI("create rtg grp success, get rtg id %{public}d.", ret); } - fclose(f); + int fc = fclose(f); + if (fc != 0) { + RME_LOGE("fclose file /proc/self/sched_rth_ctrl, errno = %{public}d (%{public}s)", errno, strerror(errno)); + } return ret; } } // namespace RME -- Gitee