aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/container.c4
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;