[strongSwan-dev] Possible bug in task_manager.c

Tobias Brunner tobias at strongswan.org
Thu Oct 6 14:17:22 CEST 2011

Hi Howard,

> In the initiate method in the "initiating already active tasks" part at
> the end . The switch statement sets up the "exchange" variable according
> to the task type. For the case IKE_MOBIKE: there is no break after
> setting the exchange, line 408 in the git repository version. This will
> cause the control flow to drop into the default case and go around the
> while loop again.

Yep, looks like a bug.  Since the order in which the tasks are 
queued/activated is pretty much fixed, there is rarely a task following 
an IKE_MOBIKE task (it certainly is never one of the other cases in that 
switch block).  Thus, the behavior won't change with an additional 
break, it will just save a few loop cycles, occasionally.  Fixed in [1].

Thanks a lot for reviewing the code and reporting this.


[1] http://git.strongswan.org/?p=strongswan.git;a=commitdiff;h=d46f8575

More information about the Dev mailing list