소스 검색

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

svn:r3301
Nick Mathewson 21 년 전
부모
커밋
e99f79fa4d
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  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);