소스 검색

r15047@catbus: nickm | 2007-09-11 13:40:54 -0400
Fix a memory leak when reloading v3 authority certificate and keys.


svn:r11428

Nick Mathewson 19 년 전
부모
커밋
749da8e0e9
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      src/or/router.c

+ 6 - 2
src/or/router.c

@@ -299,8 +299,12 @@ init_v3_authority_keys(const char *keydir)
   parsed->cache_info.signed_descriptor_len = eos-cert;
   parsed->cache_info.signed_descriptor_len = eos-cert;
   cert = NULL;
   cert = NULL;
 
 
-  /* Free old values! XXXX020 */
-
+  /* Free old values... */
+  if (authority_key_certificate)
+    authority_cert_free(authority_key_certificate);
+  if (authority_signing_key)
+    crypto_free_pk_env(authority_signing_key);
+  /* ...and replace them. */
   authority_key_certificate = parsed;
   authority_key_certificate = parsed;
   authority_signing_key = signing_key;
   authority_signing_key = signing_key;
   parsed = NULL;
   parsed = NULL;