[SSSD] [PATCH] KRB5_CHILD: Fix handling of get_password return code
Jakub Hrozek
jhrozek at redhat.com
Wed Jul 10 15:14:51 UTC 2013
On Wed, Jun 26, 2013 at 10:53:27AM +0200, Lukas Slebodnik wrote:
> On (25/06/13 15:20), Ondrej Kos wrote:
> >On 06/25/2013 03:01 PM, Lukas Slebodnik wrote:
> >>On (25/06/13 10:48), Ondrej Kos wrote:
> >>>On 06/24/2013 05:06 PM, Ondrej Kos wrote:
> >>>>While working on #1814 i noticed that there's a dead switch statement
> >>>>(with no case/default), attached patch fixes this issue.
> >>>>
> >>>>Ondra
> >>>>
> >>>>
> >>>>_______________________________________________
> >>>>sssd-devel mailing list
> >>>>sssd-devel at lists.fedorahosted.org
> >>>>https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
> >>>>
> >>>
> >>>Looking at the original code, I moved the EINVAL and ENOENT cases
> >>>together as was originally intended.
> >>>
> >>>Patch is attached
> >>>
> >>>Ondra
> >>>
> >>>--
> >>>Ondrej Kos
> >>>Associate Software Engineer
> >>>Identity Management - SSSD
> >>>Red Hat Czech
> >>
> >>>From 5a406d241949de9f939e96d078669b84f776927e Mon Sep 17 00:00:00 2001
> >>>From: Ondrej Kos <okos at redhat.com>
> >>>Date: Mon, 24 Jun 2013 16:55:02 +0200
> >>>Subject: [PATCH] KRB5_CHILD: Fix handling of get_password return code
> >>>
> >>>The switch statement was dead code due to missing case/default.
> >>>---
> >>>src/providers/krb5/krb5_child.c | 15 +++++++++++----
> >>>1 file changed, 11 insertions(+), 4 deletions(-)
> >>>
> >>>diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
> >>>index e9fbfbeafe774bc82f8be4976cc1b5a67a6acc5b..f67274bf2d761e5457e6c2e50b3351a99eb25054 100644
> >>>--- a/src/providers/krb5/krb5_child.c
> >>>+++ b/src/providers/krb5/krb5_child.c
> >>>@@ -1327,12 +1327,19 @@ static errno_t tgt_req_child(struct krb5_req *kr)
> >>>
> >>> ret = sss_authtok_get_password(kr->pd->authtok, &password, NULL);
> >>> switch (ret) {
> >>>- if (ret == EACCES) {
> >>>+ case EACCES:
> >>> DEBUG(SSSDBG_OP_FAILURE, ("Invalid authtok type\n"));
> >>> return ERR_INVALID_CRED_TYPE;
> >>>- }
> >>>- DEBUG(SSSDBG_OP_FAILURE, ("No credentials available\n"));
> >>>- return ERR_NO_CREDS;
> >>>+ break;
> >>>+
> >>>+ case ENOENT:
> >>>+ case EINVAL:
> >>>+ DEBUG(SSSDBG_OP_FAILURE, ("No credentials available\n"));
> >>>+ return ERR_NO_CREDS;
> >>>+ break;
> >>>+
> >>>+ case EOK:
> >>>+ break;
> >>> }
> >>
> >>According to
> >>www.freeipa.org/page/Coding_Style#Switch
> >>/* Always have default */
> >>
> >>I would prefer:
> >>case EACCES:
> >> /* snip */
> >>case EOK:
> >> /* snip */
> >>default:
> >>
> >>LS
> >>_______________________________________________
> >>sssd-devel mailing list
> >>sssd-devel at lists.fedorahosted.org
> >>https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
> >>
> >
> >Thanks, new patch is attached.
> >
> >Ondra
> >
> >--
> >Ondrej Kos
> >Associate Software Engineer
> >Identity Management - SSSD
> >Red Hat Czech
>
> >From 29fdd38519b2f05b7d4a6cc8f3cf588270528a24 Mon Sep 17 00:00:00 2001
> >From: Ondrej Kos <okos at redhat.com>
> >Date: Mon, 24 Jun 2013 16:55:02 +0200
> >Subject: [PATCH] KRB5_CHILD: Fix handling of get_password return code
> >
> >The switch statement was dead code due to missing case/default.
> >---
> > src/providers/krb5/krb5_child.c | 14 ++++++++++----
> > 1 file changed, 10 insertions(+), 4 deletions(-)
> >
> >diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
> >index e9fbfbeafe774bc82f8be4976cc1b5a67a6acc5b..4873b3dc34f4e7f81de43cbffea08d1f96a4c283 100644
> >--- a/src/providers/krb5/krb5_child.c
> >+++ b/src/providers/krb5/krb5_child.c
> >@@ -1327,12 +1327,18 @@ static errno_t tgt_req_child(struct krb5_req *kr)
> >
> > ret = sss_authtok_get_password(kr->pd->authtok, &password, NULL);
> > switch (ret) {
> >- if (ret == EACCES) {
> >+ case EOK:
> >+ break;
> >+
> >+ case EACCES:
> > DEBUG(SSSDBG_OP_FAILURE, ("Invalid authtok type\n"));
> > return ERR_INVALID_CRED_TYPE;
> >- }
> >- DEBUG(SSSDBG_OP_FAILURE, ("No credentials available\n"));
> >- return ERR_NO_CREDS;
> >+ break;
> >+
> >+ default:
> >+ DEBUG(SSSDBG_OP_FAILURE, ("No credentials available\n"));
> >+ return ERR_NO_CREDS;
> >+ break;
> > }
> >
> > kerr = get_and_save_tgt(kr, password);
> >--
> >1.8.1.4
> >
>
> ACK
>
> LS
Pushed to master and sssd-1-10
More information about the sssd-devel
mailing list