From 4d6a56ef8c919b2fbdf3f2109f6d59199b58edc2 Mon Sep 17 00:00:00 2001 From: wuzhihuitmac Date: Mon, 25 Jul 2022 11:29:54 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=86=85=E5=AD=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuzhihuitmac Change-Id: Id91bc1354d331f42a1490245e15fd74f7feb5a18 --- services/miscdevice_service/src/miscdevice_dump.cpp | 6 ++++-- services/miscdevice_service/src/miscdevice_service.cpp | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/services/miscdevice_service/src/miscdevice_dump.cpp b/services/miscdevice_service/src/miscdevice_dump.cpp index 695c412..b7e42f3 100644 --- a/services/miscdevice_service/src/miscdevice_dump.cpp +++ b/services/miscdevice_service/src/miscdevice_dump.cpp @@ -44,9 +44,11 @@ void MiscdeviceDump::ParseCommand(int32_t fd, const std::vector& ar {"help", no_argument, 0, 'h'}, {NULL, 0, 0, 0} }; - char **argv = new char *[args.size()]; + char **argv = new (std::nothrow) char *[args.size()]; + CHKPV(argv); for (size_t i = 0; i < args.size(); ++i) { - argv[i] = new char[args[i].size() + 1]; + argv[i] = new (std::nothrow) char[args[i].size() + 1]; + CHKPV(argv[i]); if (strcpy_s(argv[i], args[i].size() + 1, args[i].c_str()) != EOK) { MISC_HILOGE("strcpy_s error"); goto RELEASE_RES; diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index 6d19879..4615ef8 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -89,6 +89,7 @@ MiscdeviceService::~MiscdeviceService() vibratorThread_->NotifyExitSync(); } delete vibratorThread_; + vibratorThread_ = nullptr; } } -- Gitee From 78cfaf49b457f6ad763846cd93bf772a09916a4d Mon Sep 17 00:00:00 2001 From: wuzhihuitmac Date: Tue, 26 Jul 2022 06:06:57 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=E6=A3=80=E8=A7=86=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuzhihuitmac Change-Id: I2789b56bccdbb76a3c54172151e32f41ca206a22 --- services/miscdevice_service/src/miscdevice_dump.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/miscdevice_service/src/miscdevice_dump.cpp b/services/miscdevice_service/src/miscdevice_dump.cpp index b7e42f3..ebaf161 100644 --- a/services/miscdevice_service/src/miscdevice_dump.cpp +++ b/services/miscdevice_service/src/miscdevice_dump.cpp @@ -46,9 +46,13 @@ void MiscdeviceDump::ParseCommand(int32_t fd, const std::vector& ar }; char **argv = new (std::nothrow) char *[args.size()]; CHKPV(argv); + memset_s(argv, args.size() * sizeof(char *), 0, args.size() * sizeof(char *)); for (size_t i = 0; i < args.size(); ++i) { argv[i] = new (std::nothrow) char[args[i].size() + 1]; - CHKPV(argv[i]); + if (argv[i] == nullptr) { + MISC_HILOGE("alloc failure"); + goto RELEASE_RES; + } if (strcpy_s(argv[i], args[i].size() + 1, args[i].c_str()) != EOK) { MISC_HILOGE("strcpy_s error"); goto RELEASE_RES; -- Gitee From 66ae4282db99ea8c11196edd27130a0480f17d31 Mon Sep 17 00:00:00 2001 From: wuzhihuitmac Date: Tue, 26 Jul 2022 10:01:12 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=E7=9B=91=E4=BA=8B=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuzhihuitmac Change-Id: I51de7a31d016eda3947ecd60f7114490ff74109f --- services/miscdevice_service/src/miscdevice_service.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index 4615ef8..67bc3ed 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -415,8 +415,8 @@ void MiscdeviceService::VibratorEffectThread::UpdateVibratorEffectData(const std int32_t MiscdeviceService::Dump(int32_t fd, const std::vector &args) { CALL_LOG_ENTER; - if (fd < 0) { - MISC_HILOGE("fd is invalid"); + if (fd < 0 || args.size() > 32) { + MISC_HILOGE("fd is invalid or wrong number of parameters"); return DUMP_PARAM_ERR; } if (args.empty()) { -- Gitee From f43cc46d1919c23d6301ae56dcf96d92e5c7f8b1 Mon Sep 17 00:00:00 2001 From: wuzhihuitmac Date: Wed, 27 Jul 2022 00:54:28 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=E7=BC=96=E7=A0=81=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuzhihuitmac Change-Id: I9846f02456fbf0d859822939d9da7fd39003bed4 --- services/miscdevice_service/src/miscdevice_service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index 67bc3ed..fc6fa19 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -29,6 +29,7 @@ constexpr HiLogLabel LABEL = { LOG_CORE, MISC_LOG_DOMAIN, "MiscdeviceService" }; constexpr int32_t MIN_VIBRATOR_TIME = 0; constexpr int32_t MAX_VIBRATOR_TIME = 1800000; constexpr int32_t DEFAULT_VIBRATOR_ID = 123; +constexpr int32_t MAX_DUMP_PARAMETERS = 32; } // namespace bool MiscdeviceService::ready_ = false; @@ -415,7 +416,7 @@ void MiscdeviceService::VibratorEffectThread::UpdateVibratorEffectData(const std int32_t MiscdeviceService::Dump(int32_t fd, const std::vector &args) { CALL_LOG_ENTER; - if (fd < 0 || args.size() > 32) { + if (fd < 0 || args.size() > MAX_DUMP_PARAMETERS) { MISC_HILOGE("fd is invalid or wrong number of parameters"); return DUMP_PARAM_ERR; } -- Gitee