Browse Source

Check thread count for negative; realloc->reallocarray

CID 1268069
Nick Mathewson 9 years ago
parent
commit
0b46b08225
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/common/workqueue.c

+ 5 - 1
src/common/workqueue.c

@@ -363,10 +363,14 @@ threadpool_queue_update(threadpool_t *pool,
 static int
 threadpool_start_threads(threadpool_t *pool, int n)
 {
+  if (n < 0)
+    return -1;
+
   tor_mutex_acquire(&pool->lock);
 
   if (pool->n_threads < n)
-    pool->threads = tor_realloc(pool->threads, sizeof(workerthread_t*)*n);
+    pool->threads = tor_reallocarray(pool->threads,
+                                     sizeof(workerthread_t*), n);
 
   while (pool->n_threads < n) {
     void *state = pool->new_thread_state_fn(pool->new_thread_state_arg);