소스 검색

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);
             *tv = get_timeval(zh->recv_timeout/60);
             zh->delay = 0;
             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 {
         } else {
             if (addr_rw_server) {
             if (addr_rw_server) {
                 zh->addr_cur = *addr_rw_server;
                 zh->addr_cur = *addr_rw_server;