diff --git a/src/client/src/tscAsync.c b/src/client/src/tscAsync.c index e75ce8dc0106bafa53411f585ad8b708c1c1bf99..b00e82f65a1b79e90ae41362466ff2b971ec8557 100644 --- a/src/client/src/tscAsync.c +++ b/src/client/src/tscAsync.c @@ -334,6 +334,22 @@ bool appendTagsFilter(SSqlObj* pSql) { return false; } + // check tags is blank + size_t len = strlen(pTscObj->tags); + char* p = pTscObj->tags; + bool blank = true; + while(*p != 0) { + if(*p != ' ') { + blank = false; + break; + } + } + // result + if(blank) { + tscDebug("TAGS 0x%" PRIx64 " tags is all blank. user=%s", pSql->self, pTscObj->user); + return false; + } + char * p = insertTags(pSql->sqlstr, pTscObj->tags); if(p == NULL) { return false; diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 8eb7f15fde6a878ff617e047826df91c9e2c1878..6fbc8a5e19e87ecfd9a535a1491a882a26adc06b 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -862,7 +862,6 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { const char* msg3 = "name too long"; const char* msg5 = "invalid user rights"; const char* msg7 = "not support options"; - const char* msg8 = "tags filter length must over 3 bytes."; pCmd->command = pInfo->type; @@ -901,10 +900,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { } else { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg5); } - } else if (pUser->type == TSDB_ALTER_USER_TAGS) { - SStrToken* pTags = &pUser->tags; - if(pTags->n < 4) - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg8); + } } else { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg7); } diff --git a/src/mnode/src/mnodeUser.c b/src/mnode/src/mnodeUser.c index 6d6ccb933e414fd8d07c5282753685603a7e1be2..63e41bf6527684f6239e9c0af67a1e27bcc199f1 100644 --- a/src/mnode/src/mnodeUser.c +++ b/src/mnode/src/mnodeUser.c @@ -97,7 +97,7 @@ static int32_t mnodeUserActionDecode(SSdbRow *pRow) { SUserObj *pUser = (SUserObj *)calloc(1, sizeof(SUserObj)); if (pUser == NULL) return TSDB_CODE_MND_OUT_OF_MEMORY; - memcpy(pUser, pRow->rowData, tsUserUpdateSize); + memcpy(pUser, pRow->rowData, pRow->rowSize); pRow->pObj = pUser; return TSDB_CODE_SUCCESS; }