From 46fa42001831ce7868bbe335129c690fec5546a8 Mon Sep 17 00:00:00 2001 From: Thorsten Kukuk Date: Thu, 24 Aug 2006 08:49:19 +0000 Subject: Relevant BUGIDs: Purpose of commit: new feature Commit summary: --------------- Add test for [...] control sequences. 2006-08-24 Thorsten Kukuk * xtests/tst-pam_dispatch4.c: New test. * xtests/tst-pam_dispatch4.pamd: PAM config for new test. --- ChangeLog | 5 ++++ xtests/Makefile.am | 5 ++-- xtests/tst-pam_dispatch4.c | 59 +++++++++++++++++++++++++++++++++++++++++++ xtests/tst-pam_dispatch4.pamd | 8 ++++++ 4 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 xtests/tst-pam_dispatch4.c create mode 100644 xtests/tst-pam_dispatch4.pamd diff --git a/ChangeLog b/ChangeLog index 97006005..49b47e74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-08-24 Thorsten Kukuk + + * xtests/tst-pam_dispatch4.c: New test. + * xtests/tst-pam_dispatch4.pamd: PAM config for new test. + 2006-08-09 Thorsten Kukuk * release version 0.99.6.1 diff --git a/xtests/Makefile.am b/xtests/Makefile.am index 549ef8c9..44289e2e 100644 --- a/xtests/Makefile.am +++ b/xtests/Makefile.am @@ -10,9 +10,10 @@ AM_LDFLAGS = -L$(top_builddir)/libpam -lpam \ CLEANFILES = *~ EXTRA_DIST = tst-pam_dispatch1.pamd tst-pam_dispatch2.pamd \ - tst-pam_dispatch3.pamd + tst-pam_dispatch3.pamd tst-pam_dispatch4.pamd -XTESTS = tst-pam_dispatch1 tst-pam_dispatch2 tst-pam_dispatch3 +XTESTS = tst-pam_dispatch1 tst-pam_dispatch2 tst-pam_dispatch3 \ + tst-pam_dispatch4 noinst_PROGRAMS = $(XTESTS) diff --git a/xtests/tst-pam_dispatch4.c b/xtests/tst-pam_dispatch4.c new file mode 100644 index 00000000..fc05c8b9 --- /dev/null +++ b/xtests/tst-pam_dispatch4.c @@ -0,0 +1,59 @@ + +#include +#include +#include +#include + +static struct pam_conv conv = { + misc_conv, + NULL +}; + + +/* Check that errors of optional modules are ignored and that + required modules after a sufficient one are not executed. */ + +int +main(int argc, char *argv[]) +{ + pam_handle_t *pamh=NULL; + const char *user="nobody"; + int retval; + int debug = 0; + + if (argc > 1 && strcmp (argv[1], "-d") == 0) + debug = 1; + + retval = pam_start("tst-pam_dispatch4", user, &conv, &pamh); + if (retval != PAM_SUCCESS) + { + if (debug) + fprintf (stderr, "test4: pam_start returned %d\n", retval); + return 1; + } + + retval = pam_authenticate (pamh, 0); + if (retval != PAM_SUCCESS) + { + if (debug) + fprintf (stderr, "test4: pam_authenticate returned %d\n", retval); + return 1; + } + + retval = pam_acct_mgmt (pamh, 0); + if (retval == PAM_SUCCESS) + { + if (debug) + fprintf (stderr, "test4: pam_authenticate returned %d\n", retval); + return 1; + } + + retval = pam_end (pamh,retval); + if (retval != PAM_SUCCESS) + { + if (debug) + fprintf (stderr, "test4: pam_end returned %d\n", retval); + return 1; + } + return 0; +} diff --git a/xtests/tst-pam_dispatch4.pamd b/xtests/tst-pam_dispatch4.pamd new file mode 100644 index 00000000..7c08372b --- /dev/null +++ b/xtests/tst-pam_dispatch4.pamd @@ -0,0 +1,8 @@ +#%PAM-1.0 +# We jump to pam_permit.so, should pass +auth [success=1 default=ignore] pam_debug.so auth=success +auth required pam_deny.so +auth required pam_permit.so +# We jump to a non-existing slot, fail, but don't seg.fault +account [success=1 default=ignore] pam_debug.so account=success +account required pam_deny.so -- cgit v1.2.3