From f41760b3595c893ac0d3f0238401a2aae94224a7 Mon Sep 17 00:00:00 2001 From: Huaxin Lu Date: Tue, 20 Feb 2024 10:58:12 +0800 Subject: [PATCH 22/26] Add warpper for strncmp and strncpy --- src/common/dim_baseline.c | 2 +- src/common/dim_safe_func.h | 8 ++++++++ src/core/policy/dim_core_policy_complex.c | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/dim_baseline.c b/src/common/dim_baseline.c index e79458d..3fae1f9 100644 --- a/src/common/dim_baseline.c +++ b/src/common/dim_baseline.c @@ -106,7 +106,7 @@ int dim_baseline_add(struct dim_baseline_tree *root, const char *name, if (ret < 0) goto err; - strncpy((char *)baseline->name, name, buf_len - 1); + dim_strncpy((char *)baseline->name, name, buf_len - 1); ((char *)baseline->name)[buf_len - 1] = '\0'; write_lock(&root->lock); diff --git a/src/common/dim_safe_func.h b/src/common/dim_safe_func.h index 3e97f4e..15c716c 100644 --- a/src/common/dim_safe_func.h +++ b/src/common/dim_safe_func.h @@ -132,4 +132,12 @@ static inline int dim_strncmp(const char *cs, const char *ct, size_t count) return strncmp(cs, ct, count); } +static inline char *dim_strncpy(char *dest, const char *src, size_t count) +{ + if (dest == NULL || src == NULL) + return NULL; + + return strncpy(dest, src, count); +} + #endif \ No newline at end of file diff --git a/src/core/policy/dim_core_policy_complex.c b/src/core/policy/dim_core_policy_complex.c index 18a9e58..8c02227 100644 --- a/src/core/policy/dim_core_policy_complex.c +++ b/src/core/policy/dim_core_policy_complex.c @@ -63,7 +63,7 @@ static int policy_get_key(const char *s, const char **val) for (; i < DIM_POLICY_KEY_LAST; i++) { len = strlen(dim_policy_key_str[i]); - if (strncmp(s, dim_policy_key_str[i], len) == 0) { + if (dim_strncmp(s, dim_policy_key_str[i], len) == 0) { *val = s + len; return i; } -- 2.33.0