[SSSD] [PATCH] KRB5_CHILD: Fix handling of get_password return code
Lukas Slebodnik
lslebodn at redhat.com
Tue Jun 25 13:01:59 UTC 2013
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
More information about the sssd-devel
mailing list