소스 검색

Fix a leak when launching listeners.

svn:r5173
Nick Mathewson 20 년 전
부모
커밋
5c5d2e82e6
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      src/or/connection.c

+ 4 - 2
src/or/connection.c

@@ -858,12 +858,14 @@ retry_listeners(int type, config_line_t *cfg,
     line = NULL;
     SMARTLIST_FOREACH(launch, config_line_t *, wanted,
       {
-        char *addr;
+        char *addr=NULL;
         uint16_t port;
         if (! parse_addr_port(wanted->value, &addr, NULL, &port)) {
+          int addr_matches = !strcasecmp(addr, conn->address);
+          tor_free(addr);
           if (! port)
             port = port_option;
-          if (port == conn->port && !strcasecmp(addr, conn->address)) {
+          if (port == conn->port && addr_matches) {
             line = wanted;
             break;
           }