diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/container.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/common/container.c b/src/common/container.c index 4dc0a7ad7..1824645ad 100644 --- a/src/common/container.c +++ b/src/common/container.c @@ -88,7 +88,9 @@ void smartlist_truncate(smartlist_t *sl, int len) /** Append element to the end of the list. */ void smartlist_add(smartlist_t *sl, void *element) { if (sl->num_used >= sl->capacity) { - sl->capacity *= 2; + int higher = sl->capacity * 2; + tor_assert(higher > sl->capacity); /* detect overflow */ + sl->capacity = higher; sl->list = tor_realloc(sl->list, sizeof(void*)*sl->capacity); } sl->list[sl->num_used++] = element; |