Merged revisions 56685 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Sun, 25 Feb 2007 14:53:40 +0000 (14:53 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Sun, 25 Feb 2007 14:53:40 +0000 (14:53 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r56685 | tilghman | 2007-02-25 08:46:41 -0600 (Sun, 25 Feb 2007) | 11 lines

Merged revisions 56684 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r56684 | tilghman | 2007-02-25 08:38:03 -0600 (Sun, 25 Feb 2007) | 3 lines

Issue 9130 - If prev is the last item on the channel list, then evaluating
additional conditions (e.g. name prefix) will cause a NULL dereference.

........

................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@56686 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/channel.c

index a18251d..4cd7f35 100644 (file)
@@ -906,7 +906,11 @@ static struct ast_channel *channel_find_locked(const struct ast_channel *prev,
                                if (c != prev)  /* not this one */
                                        continue;
                                /* found, prepare to return c->next */
-                               c = AST_LIST_NEXT(c, chan_list);
+                               if ((c = AST_LIST_NEXT(c, chan_list)) == NULL) break;
+                               /* If prev was the last item on the channel list, then we just
+                                * want to return NULL, instead of trying to deref NULL in the
+                                * next section.
+                                */
                        }
                        if (name) { /* want match by name */
                                if ((!namelen && strcasecmp(c->name, name)) ||