@@ -125,6 +125,7 @@ static int priskvClusterMetaServerConnect(priskvClusterMetaServer *metaServer, c
125125 priskv_log_error ("Failed to connect to meta server %s:%d, %s\n" , addr , port ,
126126 metaServer -> redisCtx -> errstr );
127127 redisFree (metaServer -> redisCtx );
128+ metaServer -> redisCtx = NULL ;
128129 } else {
129130 priskv_log_error ("Failed to connect to meta server %s:%d, can't allocate redis context\n" ,
130131 addr , port );
@@ -136,14 +137,14 @@ static int priskvClusterMetaServerConnect(priskvClusterMetaServer *metaServer, c
136137 metaServer -> addr = strdup (addr );
137138 metaServer -> port = port ;
138139
139- // 发送 AUTH 命令进行认证
140140 if (password != NULL ) {
141141 redisReply * reply = redisCommand (metaServer -> redisCtx , "AUTH %s" , password );
142142 if (!reply || reply -> type == REDIS_REPLY_ERROR ) {
143143 priskv_log_error ("Failed to authenticate to meta server %s:%d, %s\n" , addr , port ,
144144 reply ? reply -> str : "unknown error" );
145145
146146 redisFree (metaServer -> redisCtx );
147+ metaServer -> redisCtx = NULL ;
147148 freeReplyObject (reply );
148149 return -1 ;
149150 }
@@ -156,7 +157,10 @@ static int priskvClusterMetaServerConnect(priskvClusterMetaServer *metaServer, c
156157
157158static void priskvClusterMetaServerClose (priskvClusterMetaServer * metaServer )
158159{
159- redisFree (metaServer -> redisCtx );
160+ if (metaServer -> redisCtx ) {
161+ redisFree (metaServer -> redisCtx );
162+ metaServer -> redisCtx = NULL ;
163+ }
160164 free (metaServer -> addr );
161165 metaServer -> addr = NULL ;
162166 metaServer -> port = 0 ;
0 commit comments