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@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 <o...@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@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 <o...@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

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to