diff options
author | Pavel Reichl <preichl@redhat.com> | 2016-02-05 07:31:45 -0500 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2016-02-17 15:46:19 +0100 |
commit | 4180d485829969d4626cc7d49d2b5f7146512f21 (patch) | |
tree | 55f66da42c3feee8128b79d72f376fd987259212 /src/providers/dp_auth_util.c | |
parent | ff275f4c0b8cc1a098dbd0c5f6d52d6a93cda597 (diff) | |
download | sssd-4180d485829969d4626cc7d49d2b5f7146512f21.tar.gz sssd-4180d485829969d4626cc7d49d2b5f7146512f21.tar.xz sssd-4180d485829969d4626cc7d49d2b5f7146512f21.zip |
PAM: Pass account lockout status and display message
Tested against Windows Server 2012.
Resolves:
https://fedorahosted.org/sssd/ticket/2839
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/providers/dp_auth_util.c')
-rw-r--r-- | src/providers/dp_auth_util.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/providers/dp_auth_util.c b/src/providers/dp_auth_util.c index f8a30c5d4..8e261ef5e 100644 --- a/src/providers/dp_auth_util.c +++ b/src/providers/dp_auth_util.c @@ -160,6 +160,14 @@ bool dp_pack_pam_response(DBusMessage *msg, struct pam_data *pd) return false; } + /* Append the lockout of account */ + dbret = dbus_message_iter_append_basic(&iter, + DBUS_TYPE_UINT32, + &pd->account_locked); + if (!dbret) { + return false; + } + /* Create an array of response structures */ dbret = dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "(uay)", @@ -246,6 +254,17 @@ bool dp_unpack_pam_response(DBusMessage *msg, struct pam_data *pd, DBusError *db return false; } + if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_UINT32) { + DEBUG(SSSDBG_CRIT_FAILURE, "pam response format error.\n"); + return false; + } + dbus_message_iter_get_basic(&iter, &(pd->account_locked)); + + if (!dbus_message_iter_next(&iter)) { + DEBUG(SSSDBG_CRIT_FAILURE, "pam response has too few arguments.\n"); + return false; + } + /* After this point will be an array of pam data */ if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY) { DEBUG(SSSDBG_CRIT_FAILURE, "pam response format error.\n"); |