From bb760de1cfedd40089cdb5df7b3e9784c3d96788 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Sun, 10 Jul 2022 17:08:33 +0800 Subject: [PATCH] add test case --- source/libs/index/src/indexFstDfa.c | 1 - source/libs/index/src/indexFstRegex.c | 5 +---- source/libs/index/src/indexFstSparse.c | 8 ++++---- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/source/libs/index/src/indexFstDfa.c b/source/libs/index/src/indexFstDfa.c index b8ac3bd3f5..046ed0f4f4 100644 --- a/source/libs/index/src/indexFstDfa.c +++ b/source/libs/index/src/indexFstDfa.c @@ -126,7 +126,6 @@ bool dfaBuilderCacheState(FstDfaBuilder *builder, FstSparseSet *set, uint32_t *r for (int i = 0; i < sparSetLen(set); i++) { int32_t ip; - if (false == sparSetGet(set, i, &ip)) continue; Inst *inst = taosArrayGet(builder->dfa->insts, ip); diff --git a/source/libs/index/src/indexFstRegex.c b/source/libs/index/src/indexFstRegex.c index 0189e9fe6e..e148f211f2 100644 --- a/source/libs/index/src/indexFstRegex.c +++ b/source/libs/index/src/indexFstRegex.c @@ -22,11 +22,8 @@ FstRegex *regexCreate(const char *str) { if (regex == NULL) { return NULL; } - int32_t sz = (int32_t)strlen(str); - char *orig = taosMemoryCalloc(1, sz); - memcpy(orig, str, sz); - regex->orig = orig; + regex->orig = tstrdup(str); // construct insts based on str SArray *insts = taosArrayInit(256, sizeof(uint8_t)); diff --git a/source/libs/index/src/indexFstSparse.c b/source/libs/index/src/indexFstSparse.c index 5fdd797aa8..60eb7afd90 100644 --- a/source/libs/index/src/indexFstSparse.c +++ b/source/libs/index/src/indexFstSparse.c @@ -52,7 +52,7 @@ bool sparSetAdd(FstSparseSet *ss, int32_t ip, int32_t *idx) { if (ss == NULL) { return false; } - if (ip >= ss->cap) { + if (ip >= ss->cap || ip < 0) { return false; } uint32_t i = ss->size; @@ -65,7 +65,7 @@ bool sparSetAdd(FstSparseSet *ss, int32_t ip, int32_t *idx) { return true; } bool sparSetGet(FstSparseSet *ss, int32_t idx, int32_t *ip) { - if (idx >= ss->cap || idx >= ss->size) { + if (idx >= ss->cap || idx >= ss->size || idx < 0) { return false; } int32_t val = ss->dense[idx]; @@ -75,12 +75,12 @@ bool sparSetGet(FstSparseSet *ss, int32_t idx, int32_t *ip) { return val == -1 ? false : true; } bool sparSetContains(FstSparseSet *ss, int32_t ip) { - if (ip >= ss->cap) { + if (ip >= ss->cap || ip < 0) { return false; } int32_t i = ss->sparse[ip]; - if (i < ss->cap && i < ss->size && ss->dense[i] == ip) { + if (i >= 0 && i < ss->cap && i < ss->size && ss->dense[i] == ip) { return true; } else { return false; -- GitLab