Browse Source

Remove broken and undocumented wart where multiple CSV config lines are appended rather than replaced. Resolves bug #49

svn:r3301
Nick Mathewson 21 years ago
parent
commit
e99f79fa4d
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/or/config.c

+ 5 - 1
src/or/config.c

@@ -583,8 +583,12 @@ config_assign_line(or_options_t *options, struct config_line_t *c, int reset)
     break;
 
   case CONFIG_TYPE_CSV:
-    if (*(smartlist_t**)lvalue == NULL)
+    if (*(smartlist_t**)lvalue) {
+      SMARTLIST_FOREACH(*(smartlist_t**)lvalue, char *, cp, tor_free(cp));
+      smartlist_clear(*(smartlist_t**)lvalue);
+    } else {
       *(smartlist_t**)lvalue = smartlist_create();
+    }
 
     smartlist_split_string(*(smartlist_t**)lvalue, c->value, ",",
                            SPLIT_SKIP_SPACE|SPLIT_IGNORE_BLANK, 0);