processor: Move priority threads assignment to set_threads()
authorTobias Brunner <tobias@strongswan.org>
Wed, 3 May 2017 15:35:45 +0000 (17:35 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 23 May 2017 16:29:12 +0000 (18:29 +0200)
This avoids the evaluation of %N even if the thread pool is never used.
We need to avoid as many custom printf specifiers as possible when
fuzzing our code to avoid excessive log messages.

src/libstrongswan/processing/processor.c

index 27e5ab5..bd8d534 100644 (file)
@@ -429,7 +429,15 @@ METHOD(processor_t, execute_job, void,
 METHOD(processor_t, set_threads, void,
        private_processor_t *this, u_int count)
 {
+       int i;
+
        this->mutex->lock(this->mutex);
+       for (i = 0; i < JOB_PRIO_MAX; i++)
+       {
+               this->prio_threads[i] = lib->settings->get_int(lib->settings,
+                                               "%s.processor.priority_threads.%N", 0, lib->ns,
+                                               job_priority_names, i);
+       }
        if (count > this->total_threads)
        {       /* increase thread count */
                worker_thread_t *worker;
@@ -551,13 +559,10 @@ processor_t *processor_create()
                .job_added = condvar_create(CONDVAR_TYPE_DEFAULT),
                .thread_terminated = condvar_create(CONDVAR_TYPE_DEFAULT),
        );
+
        for (i = 0; i < JOB_PRIO_MAX; i++)
        {
                this->jobs[i] = linked_list_create();
-               this->prio_threads[i] = lib->settings->get_int(lib->settings,
-                                               "%s.processor.priority_threads.%N", 0, lib->ns,
-                                               job_priority_names, i);
        }
-
        return &this->public;
 }