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(a)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(a)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(a)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(a)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