aboutsummaryrefslogtreecommitdiff
path: root/src/or/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/config.c')
-rw-r--r--src/or/config.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/or/config.c b/src/or/config.c
index 60f1a42c6..27bb3faf0 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -200,12 +200,9 @@ static int config_compare(struct config_line_t *c, const char *key, config_type_
*(double *)arg = atof(c->value);
break;
case CONFIG_TYPE_CSV:
- if (arg) {
- SMARTLIST_FOREACH((smartlist_t*)arg, char *, cp, tor_free(cp));
- smartlist_free((smartlist_t*)arg);
- }
- arg = smartlist_create();
- parse_csv_into_smartlist(arg, c->value);
+ if(*(smartlist_t**)arg == NULL)
+ *(smartlist_t**)arg = smartlist_create();
+ parse_csv_into_smartlist(*(smartlist_t**)arg, c->value);
break;
case CONFIG_TYPE_LINELIST:
/* Note: this reverses the order that the lines appear in. That's