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 0000000000000000000000000000000000000000..77d632e7525b83a64e686ef392eed6e6ce06a832 --- /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 0000000000000000000000000000000000000000..2c45a341c64aa312460ece9e2ba0a1c7f8bbc81b --- /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 0000000000000000000000000000000000000000..6b45e4f56f3d3384824d2e33dd1fbf0162dec6af --- /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 0000000000000000000000000000000000000000..0d5b7915b51a15836b2277a9269f76d3d1452490 --- /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 5c51b25c25c276cbfb921f65e0fd3e1e7b1a1a76..6b0d720866712f139e6b0a8348282b512224f4d2 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 3756a8c02422d5beefedf8078296e91c38fc431f..726dc705d14366ab674ab33619930b9f7ce8ce83 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