Merged revisions 287759 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r287759 | bbryant | 2010-09-20 19:58:26 -0400 (Mon, 20 Sep 2010) | 23 lines
  
  Merged revisions 287758 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r287758 | bbryant | 2010-09-20 19:57:08 -0400 (Mon, 20 Sep 2010) | 16 lines
    
    Fix misvalidation of meetme pins in conjunction with the 'a' MeetMe flag.
    
    When using the 'a' MeetMe flag and having a user and admin pin setup for your
    conference, using the user pin would gain you admin priviledges. Also, when no
    user pin was set, an admin pin was, the 'a' MeetMe flag wasn't used, and the
    user tried to enter a conference then they were still prompted for a pin and
    forced to hit #.
    
    (closes issue #17908)
    Reported by: kuj
    Patches:
          pins_2.patch uploaded by kuj (license 1111)
          Tested by: kuj
    
          Review: [full review board URL with trailing slash]
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@287760 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/1.8.6
Brett Bryant 15 years ago
parent 6c75697c13
commit 71cbbd60de

@ -4298,9 +4298,13 @@ static int conf_exec(struct ast_channel *chan, const char *data)
res = -1;
}
} else {
if (((!ast_strlen_zero(cnf->pin) &&
!ast_test_flag64(&confflags, CONFFLAG_ADMIN)) ||
!ast_strlen_zero(cnf->pinadmin)) &&
if (((!ast_strlen_zero(cnf->pin) &&
!ast_test_flag64(&confflags, CONFFLAG_ADMIN)) ||
(!ast_strlen_zero(cnf->pinadmin) &&
ast_test_flag64(&confflags, CONFFLAG_ADMIN)) ||
(!ast_strlen_zero(cnf->pin) &&
ast_strlen_zero(cnf->pinadmin) &&
ast_test_flag64(&confflags, CONFFLAG_ADMIN))) &&
(!(cnf->users == 0 && cnf->isdynamic))) {
char pin[MAX_PIN] = "";
int j;
@ -4315,9 +4319,11 @@ static int conf_exec(struct ast_channel *chan, const char *data)
res = ast_app_getdata(chan, "conf-getpin", pin + strlen(pin), sizeof(pin) - 1 - strlen(pin), 0);
}
if (res >= 0) {
if (!strcasecmp(pin, cnf->pin) ||
(!ast_strlen_zero(cnf->pinadmin) &&
!strcasecmp(pin, cnf->pinadmin))) {
if ((!strcasecmp(pin, cnf->pin) &&
(ast_strlen_zero(cnf->pinadmin) ||
!ast_test_flag64(&confflags, CONFFLAG_ADMIN))) ||
(!ast_strlen_zero(cnf->pinadmin) &&
!strcasecmp(pin, cnf->pinadmin))) {
/* Pin correct */
allowretry = 0;
if (!ast_strlen_zero(cnf->pinadmin) && !strcasecmp(pin, cnf->pinadmin)) {

Loading…
Cancel
Save