From 2167999b17939a86b7ca37d14ce5e3c2b5fbee30 Mon Sep 17 00:00:00 2001 From: suoqilong Date: Tue, 8 Apr 2025 06:35:03 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=BF=E6=8D=A2std:stoi=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E6=9B=BF=E6=8D=A2-0408?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: suoqilong --- .../service/kvdb/kvdb_general_store.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp index 957320389..cb14bf433 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp @@ -78,6 +78,7 @@ const std::map KVDBGeneralStore::dbStatusMap }; constexpr uint32_t LOCK_TIMEOUT = 3600; // second +static constexpr int DECIMAL_BASE = 10; // decimal base static DBSchema GetDBSchema(const Database &database) { DBSchema schema; @@ -201,7 +202,18 @@ KVDBGeneralStore::KVDBGeneralStore(const StoreMetaData &meta) storeInfo_.bundleName = meta.bundleName; storeInfo_.storeName = meta.storeId; storeInfo_.instanceId = meta.instanceId; - storeInfo_.user = std::stoi(meta.user); + char *endptr = nullptr; + errno = 0; + long userLong = strtol(meta.user, &endptr, DECIMAL_BASE); + if (endptr == nullptr || endptr == meta.user || *endptr != '\0') { + ZLOGE("User:%{public}s is invalid", meta.user); + return; + } + if (errno == ERANGE || userLong >= INT32_MAX || userLong <= INT32_MIN) { + ZLOGE("User:%{public}s is out of range", meta.user); + return; + } + storeInfo_.user = static_cast(userLong); enableCloud_ = meta.enableCloud; } -- Gitee From b9c1327922db8ba614d516dcad39cc28e2d6f28a Mon Sep 17 00:00:00 2001 From: suoqilong Date: Tue, 8 Apr 2025 06:59:52 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=BF=E6=8D=A2std:stoi=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E6=9B=BF=E6=8D=A2-0408?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: suoqilong --- .../service/kvdb/kvdb_general_store.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp index cb14bf433..b11b56fa4 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp @@ -204,13 +204,13 @@ KVDBGeneralStore::KVDBGeneralStore(const StoreMetaData &meta) storeInfo_.instanceId = meta.instanceId; char *endptr = nullptr; errno = 0; - long userLong = strtol(meta.user, &endptr, DECIMAL_BASE); - if (endptr == nullptr || endptr == meta.user || *endptr != '\0') { - ZLOGE("User:%{public}s is invalid", meta.user); + long userLong = strtol(meta.user.c_str(), &endptr, DECIMAL_BASE); + if (endptr == nullptr || endptr == meta.user.c_str() || *endptr != '\0') { + ZLOGE("User:%{public}s is invalid", meta.user.c_str()); return; } if (errno == ERANGE || userLong >= INT32_MAX || userLong <= INT32_MIN) { - ZLOGE("User:%{public}s is out of range", meta.user); + ZLOGE("User:%{public}s is out of range", meta.user.c_str()); return; } storeInfo_.user = static_cast(userLong); -- Gitee From 92b74374ca29463cb37ce1aaa44d2999135c23ff Mon Sep 17 00:00:00 2001 From: suoqilong Date: Wed, 9 Apr 2025 02:07:05 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=BF=E6=8D=A2std:stoi=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E6=9B=BF=E6=8D=A2-0408?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: suoqilong --- .../service/kvdb/kvdb_general_store.cpp | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp index b11b56fa4..358468d15 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp @@ -78,7 +78,6 @@ const std::map KVDBGeneralStore::dbStatusMap }; constexpr uint32_t LOCK_TIMEOUT = 3600; // second -static constexpr int DECIMAL_BASE = 10; // decimal base static DBSchema GetDBSchema(const Database &database) { DBSchema schema; @@ -202,18 +201,7 @@ KVDBGeneralStore::KVDBGeneralStore(const StoreMetaData &meta) storeInfo_.bundleName = meta.bundleName; storeInfo_.storeName = meta.storeId; storeInfo_.instanceId = meta.instanceId; - char *endptr = nullptr; - errno = 0; - long userLong = strtol(meta.user.c_str(), &endptr, DECIMAL_BASE); - if (endptr == nullptr || endptr == meta.user.c_str() || *endptr != '\0') { - ZLOGE("User:%{public}s is invalid", meta.user.c_str()); - return; - } - if (errno == ERANGE || userLong >= INT32_MAX || userLong <= INT32_MIN) { - ZLOGE("User:%{public}s is out of range", meta.user.c_str()); - return; - } - storeInfo_.user = static_cast(userLong); + storeInfo_.user = std::atoi(meta.user.c_str()); enableCloud_ = meta.enableCloud; } -- Gitee