summaryrefslogtreecommitdiff
path: root/contrib/libpam/libpam/pam_delay.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libpam/libpam/pam_delay.c')
-rw-r--r--contrib/libpam/libpam/pam_delay.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/contrib/libpam/libpam/pam_delay.c b/contrib/libpam/libpam/pam_delay.c
index e6950e2a966bd..b414ecc4972d9 100644
--- a/contrib/libpam/libpam/pam_delay.c
+++ b/contrib/libpam/libpam/pam_delay.c
@@ -1,12 +1,11 @@
/*
* pam_delay.c
*
- * Copyright (c) Andrew G. Morgan <morgan@linux.kernel.org> 1996-8
+ * Copyright (c) Andrew G. Morgan <morgan@kernel.org> 1996-9
* All rights reserved.
*
- * $Id: pam_delay.c,v 1.5 1997/04/05 06:54:19 morgan Exp $
+ * $Id: pam_delay.c,v 1.3 2001/01/22 06:07:28 agmorgan Exp $
*
- * $Log: pam_delay.c,v $
*/
/*
@@ -94,13 +93,20 @@ void _pam_await_timer(pam_handle_t *pamh, int status)
if (pamh->fail_delay.delay_fn_ptr) {
union {
const void *value;
- void (*fn)(int, unsigned);
+ void (*fn)(int, unsigned, void *);
} hack_fn_u;
+ void *appdata_ptr;
+
+ if (pamh->pam_conversation) {
+ appdata_ptr = pamh->pam_conversation->appdata_ptr;
+ } else {
+ appdata_ptr = NULL;
+ }
/* always call the applications delay function, even if
the delay is zero - indicate status */
hack_fn_u.value = pamh->fail_delay.delay_fn_ptr;
- hack_fn_u.fn(status, delay);
+ hack_fn_u.fn(status, delay, appdata_ptr);
} else if (status != PAM_SUCCESS && pamh->fail_delay.set) {