diff --git a/src/or/confparse.c b/src/or/confparse.c
index f2ada4f420b7080618494b8b17adc7a4d002eeb1..c5400a6512bd2fa6e7bb0a1b56c787c8db921390 100644
--- a/src/or/confparse.c
+++ b/src/or/confparse.c
@@ -392,7 +392,7 @@ config_assign_value(const config_format_t *fmt, void *options,
               "Interval in '%s %s' is malformed or out of bounds.",
               c->key, c->value);
           SMARTLIST_FOREACH(csv_str, char *, cp, tor_free(cp));
-          smartlist_clear(csv_str);
+          smartlist_free(csv_str);
           return -1;
         }
         csv_int = tor_malloc_zero(sizeof(int));
@@ -401,7 +401,7 @@ config_assign_value(const config_format_t *fmt, void *options,
       }
     SMARTLIST_FOREACH_END(str);
     SMARTLIST_FOREACH(csv_str, char *, cp, tor_free(cp));
-    smartlist_clear(csv_str);
+    smartlist_free(csv_str);
     break;
 
   case CONFIG_TYPE_LINELIST: