Преглед изворни кода

Avoid segfault when freeing options_t without firewall_ports

svn:r2279
Nick Mathewson пре 21 година
родитељ
комит
555f8f30f4
1 измењених фајлова са 4 додато и 2 уклоњено
  1. 4 2
      src/or/config.c

+ 4 - 2
src/or/config.c

@@ -545,8 +545,10 @@ static void free_options(or_options_t *options) {
   config_free_lines(options->DirBindAddress);
   config_free_lines(options->ExitPolicy);
   config_free_lines(options->SocksPolicy);
-  SMARTLIST_FOREACH(options->FirewallPorts, char *, cp, tor_free(cp));
-  smartlist_free(options->FirewallPorts);
+  if (options->FirewallPorts) {
+    SMARTLIST_FOREACH(options->FirewallPorts, char *, cp, tor_free(cp));
+    smartlist_free(options->FirewallPorts);
+  }
 }
 
 /** Set <b>options</b> to hold reasonable defaults for most options. */