From 6b020750c23624bbd60b06f31216ec6ebea36fb6 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 29 Dec 2021 00:40:27 -0800 Subject: [PATCH] fix crash while use db which is not exist --- source/client/src/clientMsgHandler.c | 15 +++++++++++---- tests/script/general/db/basic1.sim | 6 ++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/source/client/src/clientMsgHandler.c b/source/client/src/clientMsgHandler.c index e2fdf96385..f7cf661019 100644 --- a/source/client/src/clientMsgHandler.c +++ b/source/client/src/clientMsgHandler.c @@ -188,14 +188,21 @@ int32_t processCreateDbRsp(void* param, const SDataBuf* pMsg, int32_t code) { } int32_t processUseDbRsp(void* param, const SDataBuf* pMsg, int32_t code) { - SUseDbRsp* pUseDbRsp = (SUseDbRsp*) pMsg->pData; - SName name = {0}; - tNameFromString(&name, pUseDbRsp->db, T_NAME_ACCT|T_NAME_DB); + SRequestObj* pRequest = param; + + if (code != TSDB_CODE_SUCCESS) { + pRequest->code = code; + tsem_post(&pRequest->body.rspSem); + return code; + } + + SUseDbRsp* pUseDbRsp = (SUseDbRsp*)pMsg->pData; + SName name = {0}; + tNameFromString(&name, pUseDbRsp->db, T_NAME_ACCT | T_NAME_DB); char db[TSDB_DB_NAME_LEN] = {0}; tNameGetDbName(&name, db); - SRequestObj* pRequest = param; setConnectionDB(pRequest->pTscObj, db); tsem_post(&pRequest->body.rspSem); diff --git a/tests/script/general/db/basic1.sim b/tests/script/general/db/basic1.sim index 05ecbbf5ac..44d53917f2 100644 --- a/tests/script/general/db/basic1.sim +++ b/tests/script/general/db/basic1.sim @@ -61,11 +61,13 @@ endi print =============== show vgroups sql show databases -if $rows == 1 then +if $rows != 1 then return -1 endi -sql use d1 +sql_error use d1 + +sql use d4 sql show vgroups if $rows != 2 then -- GitLab