[Asterisk-Dev] app_meetme crash

Jared Mauch jared at puck.nether.net
Wed Jun 2 14:29:00 MST 2004


	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.



More information about the asterisk-dev mailing list