[Asterisk-Dev] app_meetme crash

Rob Gagnon rob at networkip.net
Wed Jun 2 15:50:32 MST 2004


Bug posted with patch at:
http://bugs.digium.com/bug_view_page.php?bug_id=0001773

ROb

----- Original Message ----- 
From: "Jared Mauch" <jared at puck.nether.net>
To: <asterisk-dev at lists.digium.com>
Sent: Wednesday, June 02, 2004 4:29 PM
Subject: [Asterisk-Dev] app_meetme crash


>
> See the patch, this will prevent it from coring, but could lead
> to other issues.
>
> - Jared
>
> #0  0x003d2c1e in conf_run (chan=0x88aa400, conf=0x86ee8d8, confflags=536)
>     at app_meetme.c:942
> 942                                     user->prevuser->nextuser =
user->nextuser;
> (gdb) print *user
> $1 = {user_no = 1, prevuser = 0x0, nextuser = 0x88beba8, userflags = 536,
>   adminflags = 0, chan = 0x88aa400,
>   usrvalue = "test", '\0' <repeats 45 times>, jointime = 2586960}
> (gdb) print *user->prevuser
> Cannot access memory at address 0x0
> (gdb) print *user->nextuser
> $2 = {user_no = 2, prevuser = 0x0, nextuser = 0x8694058, userflags = 536,
>   adminflags = 0, chan = 0x8878370,
>   usrvalue = "test", '\0' <repeats 45 times>, jointime = 2586960}
> (gdb) print user->nextuser->prevuser
> $3 = (struct ast_conf_user *) 0x0
> (gdb) print user->prevuser
> $4 = (struct ast_conf_user *) 0x0
> (gdb) print user->nextuser
> $5 = (struct ast_conf_user *) 0x88beba8
> (gdb) print user->prevuser
> $6 = (struct ast_conf_user *) 0x0
>
> diff -u -r1.35 app_meetme.c
> --- app_meetme.c        1 Jun 2004 22:54:18 -0000       1.35
> +++ app_meetme.c        2 Jun 2004 21:27:24 -0000
> @@ -939,7 +939,9 @@
>                                 cur->lastuser = cur->lastuser->prevuser;
>                         } else {
>                                 user->nextuser->prevuser = user->prevuser;
> -                               user->prevuser->nextuser = user->nextuser;
> +                               if (user->prevuser != NULL) {
> +                                       user->prevuser->nextuser =
user->nextuser;
> +                               }
>                         }
>                         /* Return the number of seconds the user was in
the conf */
>                         sprintf(meetmesecs, "%i", (int) (user->jointime -
time(NULL)));
>
> -- 
> Jared Mauch  | pgp key available via finger from jared at puck.nether.net
> clue++;      | http://puck.nether.net/~jared/  My statements are only
mine.
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev




More information about the asterisk-dev mailing list