From 4eafdea241c347106fe815fa8f608a4c403f67d0 Mon Sep 17 00:00:00 2001 From: Esben Haabendal <esben.haabendal@huawei.com> Date: Tue, 5 Jul 2022 11:36:37 +0200 Subject: [PATCH] openharmony-standard: appspawn bugfixes Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> --- ...rd-app-spawn-server-override-007-fix.patch | 27 +++++++++++++++++++ ...ndard-setprocessname-buffer-overflow.patch | 25 +++++++++++++++++ ...rd-app-spawn-server-override-007-fix.patch | 27 +++++++++++++++++++ ...ndard-setprocessname-buffer-overflow.patch | 25 +++++++++++++++++ .../openharmony/openharmony-standard_3.0.bb | 2 ++ .../openharmony/openharmony-standard_3.1.bb | 2 ++ 6 files changed, 108 insertions(+) create mode 100644 recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch create mode 100644 recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch create mode 100644 recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch create mode 100644 recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch new file mode 100644 index 0000000..77d632e --- /dev/null +++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch @@ -0,0 +1,27 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.0 codebase. + +Fix App_Spawn_Server_Override_007 test. + +Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> +Upstream-Status: Pending + +diff --git a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp +index 8956e0c272b9..516ca82a8ef6 100644 +--- a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp ++++ b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp +@@ -208,8 +208,9 @@ HWTEST_F(AppSpawnServerOverrideTest, App_Spawn_Server_Override_007, TestSize.Lev + { + GTEST_LOG_(INFO) << "App_Spawn_Server_Override_007 start"; + +- char longProcName[20] = "longProcName"; +- int64_t longProcNameLen = strlen(longProcName); ++ char longProcName[22] = "longProcName"; ++ // longProcName array must be large enough to hold processName set below ++ int64_t longProcNameLen = sizeof(longProcName); + char processName[32] = "processName0123456789"; + int32_t len = sizeof(processName); + diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch new file mode 100644 index 0000000..2c45a34 --- /dev/null +++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.0 codebase. + +Prevent buffer overflow error in AppSpawn::SetProcessName() when processName is +longer than longProcNameLen - 1. + +Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> +Upstream-Status: Pending + +diff --git a/src/appspawn_server.cpp b/src/appspawn_server.cpp +index 9e238409ad41..ea539e5b5b2a 100644 +--- a/src/appspawn_server.cpp ++++ b/src/appspawn_server.cpp +@@ -267,7 +267,7 @@ int32_t AppSpawnServer::SetProcessName( + } + + // set long process name +- if (strncpy_s(longProcName, len, processName, len) != EOK) { ++ if (strncpy_s(longProcName, longProcNameLen, processName, len) != EOK) { + HiLog::Error(LABEL, "strncpy_s long name error: %{public}d", strerror_r(errno, err_string, ERR_STRING_SZ)); + return -EINVAL; + } diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch b/recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch new file mode 100644 index 0000000..6b45e4f --- /dev/null +++ b/recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch @@ -0,0 +1,27 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.1 codebase. + +Fix App_Spawn_Server_Override_007 test. + +Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> +Upstream-Status: Pending + +diff --git a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp +index 8956e0c272b9..516ca82a8ef6 100644 +--- a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp ++++ b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp +@@ -208,8 +208,9 @@ HWTEST_F(AppSpawnServerOverrideTest, App_Spawn_Server_Override_007, TestSize.Lev + { + GTEST_LOG_(INFO) << "App_Spawn_Server_Override_007 start"; + +- char longProcName[20] = "longProcName"; +- int64_t longProcNameLen = strlen(longProcName); ++ char longProcName[22] = "longProcName"; ++ // longProcName array must be large enough to hold processName set below ++ int64_t longProcNameLen = sizeof(longProcName); + char processName[32] = "processName0123456789"; + int32_t len = sizeof(processName); + diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch b/recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch new file mode 100644 index 0000000..0d5b791 --- /dev/null +++ b/recipes-openharmony/openharmony/openharmony-standard-3.1/base_startup_appspawn_standard-setprocessname-buffer-overflow.patch @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.1 codebase. + +Prevent buffer overflow error in AppSpawn::SetProcessName() when processName is +longer than longProcNameLen - 1. + +Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> +Upstream-Status: Pending + +diff --git a/src/appspawn_server.cpp b/src/appspawn_server.cpp +index 54f66450b81e..707aed8c924e 100644 +--- a/src/appspawn_server.cpp ++++ b/src/appspawn_server.cpp +@@ -514,7 +514,7 @@ int32_t AppSpawnServer::SetProcessName( + } + + // set long process name +- if (strncpy_s(longProcName, len, processName, len) != EOK) { ++ if (strncpy_s(longProcName, longProcNameLen, processName, len) != EOK) { + HiLog::Error(LABEL, "strncpy_s long name error: %{public}d", errno); + return -EINVAL; + } diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb index 5c51b25..6b0d720 100644 --- a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb +++ b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb @@ -50,6 +50,8 @@ SRC_URI += "file://xf86drm.c-Add-drmWaitVBlank-hack.patch;patchdir=${S}/third_pa SRC_URI += "file://graphic-standard-Add-missing-entry-for-libwms_client.patch;patchdir=${S}/foundation/graphic/standard" SRC_URI += "file://appspawn-procps.patch;patchdir=${S}/base/startup/appspawn_standard" +SRC_URI += "file://base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch;patchdir=${S}/base/startup/appspawn_standard" +SRC_URI += "file://base_startup_appspawn_standard-setprocessname-buffer-overflow.patch;patchdir=${S}/base/startup/appspawn_standard" inherit python3native gn_base ptest diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.1.bb b/recipes-openharmony/openharmony/openharmony-standard_3.1.bb index 3756a8c..726dc70 100644 --- a/recipes-openharmony/openharmony/openharmony-standard_3.1.bb +++ b/recipes-openharmony/openharmony/openharmony-standard_3.1.bb @@ -74,6 +74,8 @@ SRC_URI += "file://foundation_distributedschedule_safwk-slash-system-symlink.pat SRC_URI += "file://foundation_distributedschedule_samgr-slash-system-symlink.patch;patchdir=${S}/foundation/distributedschedule/samgr" SRC_URI += "file://appspawn-procps.patch;patchdir=${S}/base/startup/appspawn_standard" +SRC_URI += "file://base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch;patchdir=${S}/base/startup/appspawn_standard" +SRC_URI += "file://base_startup_appspawn_standard-setprocessname-buffer-overflow.patch;patchdir=${S}/base/startup/appspawn_standard" # Workaround for problem with nodejs 17: # error:0308010C:digital envelope routines::unsupported -- GitLab