[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