fixed bus args copy on non i386 archs

This commit is contained in:
Martin Willi
2008-07-21 14:23:43 +00:00
parent fb34475b5c
commit ee93541783
+6 -1
View File
@@ -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;
} }