diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 8ed5765369..2804bcd53c 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -2864,6 +2864,10 @@ static int skinny_hold(struct skinny_subchannel *sub) struct skinnysession *s = d->session; struct skinny_req *req; + /* Don't try to hold a channel that doesn't exist */ + if (!sub || !sub->owner) + return 0; + /* Channel needs to be put on hold */ if (skinnydebug) ast_verbose("Putting on Hold(%d)\n", l->instance); @@ -2904,6 +2908,10 @@ static int skinny_unhold(struct skinny_subchannel *sub) struct skinnysession *s = d->session; struct skinny_req *req; + /* Don't try to unhold a channel that doesn't exist */ + if (!sub || !sub->owner) + return 0; + /* Channel is on hold, so we will unhold */ if (skinnydebug) ast_verbose("Taking off Hold(%d)\n", l->instance);