From 27952bb2e037c2a3bade5d0130aa52c0b56a5831 Mon Sep 17 00:00:00 2001 From: xywang Date: Tue, 1 Mar 2022 19:41:05 +0800 Subject: [PATCH] [TD-13616]: fixed wrong length parsing in special chars escaping --- src/client/src/tscParseLineProtocol.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index ea74e4e018..5d1173e8cf 100644 --- a/src/client/src/tscParseLineProtocol.c +++ b/src/client/src/tscParseLineProtocol.c @@ -2140,7 +2140,7 @@ static int32_t parseSmlKey(TAOS_SML_KV *pKV, const char **index, SHashObj *pHash static int32_t parseSmlValue(TAOS_SML_KV *pKV, const char **index, bool *is_last_kv, SSmlLinesInfo* info, bool isTag) { - const char *start, *cur; + const char *start, *cur, *tmp; int32_t ret = TSDB_CODE_SUCCESS; char *value = NULL; int16_t len = 0; @@ -2188,8 +2188,11 @@ static int32_t parseSmlValue(TAOS_SML_KV *pKV, const char **index, } //Escape special character if (*cur == '\\') { + tmp = cur; escapeSpecialCharacter(isTag ? 2 : 3, &cur); - len++; + if (tmp != cur) { + continue; + } } cur++; len++; -- GitLab