aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/channel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/channel.c b/main/channel.c
index da8f22a6a..eecf0e64c 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -997,7 +997,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)) ||