fixed bus args copy on non i386 archs
This commit is contained in:
@@ -284,13 +284,16 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
static bool signal_cb(entry_t *entry, signal_data_t *data)
|
static bool signal_cb(entry_t *entry, signal_data_t *data)
|
||||||
{
|
{
|
||||||
|
va_list args;
|
||||||
|
|
||||||
if (entry->calling)
|
if (entry->calling)
|
||||||
{ /* avoid recursive calls */
|
{ /* avoid recursive calls */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
entry->calling = TRUE;
|
entry->calling = TRUE;
|
||||||
|
va_copy(args, data->args);
|
||||||
if (!entry->listener->signal(entry->listener, data->signal, data->level,
|
if (!entry->listener->signal(entry->listener, data->signal, data->level,
|
||||||
data->thread, data->ike_sa, data->user, data->format, data->args))
|
data->thread, data->ike_sa, data->user, data->format, args))
|
||||||
{
|
{
|
||||||
if (entry->blocker)
|
if (entry->blocker)
|
||||||
{
|
{
|
||||||
@@ -301,9 +304,11 @@ static bool signal_cb(entry_t *entry, signal_data_t *data)
|
|||||||
{
|
{
|
||||||
entry_destroy(entry);
|
entry_destroy(entry);
|
||||||
}
|
}
|
||||||
|
va_end(args);
|
||||||
entry->calling = FALSE;
|
entry->calling = FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
va_end(args);
|
||||||
entry->calling = FALSE;
|
entry->calling = FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user