]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
auth-pam: Add an enum to define the PAM done status
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Mon, 16 Oct 2023 19:15:45 +0000 (21:15 +0200)
committerDarren Tucker <dtucker@dtucker.net>
Sun, 15 Feb 2026 18:58:29 +0000 (13:58 -0500)
Makes things more readable and easier to extend

auth-pam.c

index 1a5604690f330209e62fcca08a23a2a515d9f84b..1aba2dc5bed005cd168fd207bdb5181031db95c9 100644 (file)
@@ -132,11 +132,16 @@ typedef pid_t sp_pthread_t;
 #define pthread_join   fake_pthread_join
 #endif
 
+typedef int SshPamDone;
+#define SshPamError -1
+#define SshPamNone 0
+#define SshPamAuthenticated 1
+
 struct pam_ctxt {
        sp_pthread_t     pam_thread;
        int              pam_psock;
        int              pam_csock;
-       int              pam_done;
+       SshPamDone       pam_done;
 };
 
 static void sshpam_free_ctx(void *);
@@ -907,7 +912,7 @@ sshpam_query(void *ctx, char **name, char **info,
                                **prompts = NULL;
                                *num = 0;
                                **echo_on = 0;
-                               ctxt->pam_done = -1;
+                               ctxt->pam_done = SshPamError;
                                free(msg);
                                sshbuf_free(buffer);
                                return 0;
@@ -934,7 +939,7 @@ sshpam_query(void *ctx, char **name, char **info,
                                import_environments(buffer);
                                *num = 0;
                                **echo_on = 0;
-                               ctxt->pam_done = 1;
+                               ctxt->pam_done = SshPamAuthenticated;
                                free(msg);
                                sshbuf_free(buffer);
                                return (0);
@@ -947,7 +952,7 @@ sshpam_query(void *ctx, char **name, char **info,
                        *num = 0;
                        **echo_on = 0;
                        free(msg);
-                       ctxt->pam_done = -1;
+                       ctxt->pam_done = SshPamError;
                        sshbuf_free(buffer);
                        return (-1);
                }
@@ -991,10 +996,10 @@ sshpam_respond(void *ctx, u_int num, char **resp)
 
        debug2_f("PAM: entering, %u responses", num);
        switch (ctxt->pam_done) {
-       case 1:
+       case SshPamAuthenticated:
                sshpam_authenticated = 1;
                return (0);
-       case 0:
+       case SshPamNone:
                break;
        default:
                return (-1);