From ee93541783f938d6fcebe14b08129dff642d2028 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 21 Jul 2008 14:23:43 +0000 Subject: [PATCH] fixed bus args copy on non i386 archs --- src/charon/bus/bus.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/charon/bus/bus.c b/src/charon/bus/bus.c index 1f51045f3..c0803874d 100644 --- a/src/charon/bus/bus.c +++ b/src/charon/bus/bus.c @@ -284,13 +284,16 @@ typedef struct { */ static bool signal_cb(entry_t *entry, signal_data_t *data) { + va_list args; + if (entry->calling) { /* avoid recursive calls */ return FALSE; } entry->calling = TRUE; + va_copy(args, data->args); 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) { @@ -301,9 +304,11 @@ static bool signal_cb(entry_t *entry, signal_data_t *data) { entry_destroy(entry); } + va_end(args); entry->calling = FALSE; return TRUE; } + va_end(args); entry->calling = FALSE; return FALSE; }