浏览代码

ZOOKEEPER-4699: Fix hostname use-after-free in the C client

Reviewers: kezhuw, ztzg
Author: fanyang89
Closes #2138 from fanyang89/fix-c-client-hostname-uaf
fanyang 6 月之前
父节点
当前提交
e72f80aa38
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      zookeeper-client/zookeeper-client-c/src/zookeeper.c

+ 3 - 2
zookeeper-client/zookeeper-client-c/src/zookeeper.c

@@ -2558,8 +2558,9 @@ int zookeeper_interest(zhandle_t *zh, socket_t *fd, int *interest,
             *tv = get_timeval(zh->recv_timeout/60);
             zh->delay = 0;
 
-            LOG_WARN(LOGCALLBACK(zh), "Delaying connection after exhaustively trying all servers [%s]",
-                     zh->hostname);
+            lock_reconfig(zh);
+            LOG_WARN(LOGCALLBACK(zh), "Delaying connection after exhaustively trying all servers [%s]", zh->hostname);
+            unlock_reconfig(zh);
         } else {
             if (addr_rw_server) {
                 zh->addr_cur = *addr_rw_server;