fix buglets in new authentication code (issue #4860)
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 23 Aug 2005 15:21:48 +0000 (15:21 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 23 Aug 2005 15:21:48 +0000 (15:21 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6380 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_authenticate.c

index 903e7b4..c9bbdf2 100755 (executable)
@@ -139,7 +139,7 @@ static int auth_exec(struct ast_channel *chan, void *data)
                                                                        break;
                                                                }
                                                        } else {
-                                                               if(!strcmp(passwd, buf)) {
+                                                               if (!strcmp(passwd, buf)) {
                                                                        if (strchr(opts, 'a'))
                                                                                ast_cdr_setaccount(chan, buf);
                                                                        break;
@@ -150,7 +150,7 @@ static int auth_exec(struct ast_channel *chan, void *data)
                                        fclose(f);
                                        if (!ast_strlen_zero(buf)) {
                                                if (strchr(opts, 'm')) {
-                                                       if (!strcmp(md5passwd, md5secret))
+                                                       if (md5secret && !strcmp(md5passwd, md5secret))
                                                                break;
                                                } else {
                                                        if (!strcmp(passwd, buf))
@@ -168,7 +168,7 @@ static int auth_exec(struct ast_channel *chan, void *data)
                prompt="auth-incorrect";
        }
        if ((retries < 3) && !res) {
-               if (strchr(opts, 'a')) 
+               if (strchr(opts, 'a') && !strchr(opts, 'm')) 
                        ast_cdr_setaccount(chan, passwd);
                res = ast_streamfile(chan, "auth-thankyou", chan->language);
                if (!res)