From 53a3e9e5aa2eb4a5239b33074aacd9a348c44dbf Mon Sep 17 00:00:00 2001 From: redhat008 Date: Thu, 10 Sep 2020 21:37:57 +0800 Subject: [PATCH 1/2] IsValidKey strlen instead of strnlen --- kv_store/src/kvstore_common/kvstore_common.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kv_store/src/kvstore_common/kvstore_common.c b/kv_store/src/kvstore_common/kvstore_common.c index 338552e..1eb8bea 100755 --- a/kv_store/src/kvstore_common/kvstore_common.c +++ b/kv_store/src/kvstore_common/kvstore_common.c @@ -35,9 +35,15 @@ boolean IsValidChar(const char ch) boolean IsValidValue(const char* value, unsigned int len) { - if ((value == NULL) || !strlen(value) || (strlen(value) >= len)) { + if (value == NULL) { return FALSE; } + + int valueLen = strnlen(value, MAX_VALUE_LEN); + if (valueLen <= 0 || valueLen >= MAX_VALUE_LEN || valueLen >= len) { + return FALSE; + } + return TRUE; } @@ -46,7 +52,8 @@ boolean IsValidKey(const char* key) if (!IsValidValue(key, MAX_KEY_LEN)) { return FALSE; } - int keyLen = strlen(key); + + int keyLen = strnlen(key, MAX_KEY_LEN); for (int i = 0; i < keyLen; i++) { if (!IsValidChar(key[i])) { return FALSE; -- Gitee From 9bff9b312cb81c2267f532be88256c2bcb95afde Mon Sep 17 00:00:00 2001 From: redhat008 Date: Fri, 11 Sep 2020 10:08:43 +0800 Subject: [PATCH 2/2] strlen instead of strlen fix --- kv_store/src/kvstore_common/kvstore_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kv_store/src/kvstore_common/kvstore_common.c b/kv_store/src/kvstore_common/kvstore_common.c index 1eb8bea..079e41c 100755 --- a/kv_store/src/kvstore_common/kvstore_common.c +++ b/kv_store/src/kvstore_common/kvstore_common.c @@ -39,7 +39,7 @@ boolean IsValidValue(const char* value, unsigned int len) return FALSE; } - int valueLen = strnlen(value, MAX_VALUE_LEN); + size_t valueLen = strnlen(value, MAX_VALUE_LEN); if (valueLen <= 0 || valueLen >= MAX_VALUE_LEN || valueLen >= len) { return FALSE; } -- Gitee