diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index ea74e4e0183af657af824aec56b7537c5ff1641d..5d1173e8cf3859403c765a514c07120cb0f18ba7 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++;