bsc: Some S_LCHAN signals don't provide an lchan

Check the signal and only continue if it is any of the
signals we want to handle. In the case of measurement
reports we would cast some random code to a lchan.
This commit is contained in:
Holger Hans Peter Freyther
2010-12-27 12:30:12 +01:00
parent 59f787a4c1
commit 9ae7b29e3a

View File

@@ -606,6 +606,20 @@ static int bsc_handle_lchan_signal(unsigned int subsys, unsigned int signal,
if (subsys != SS_LCHAN)
return 0;
/*
* Check if it is any of the signals we handle. We do want
* to do this early as we will need to check the lchan and
* the bsc api in it.
*/
switch (signal) {
case S_LCHAN_UNEXPECTED_RELEASE:
case S_LCHAN_ACTIVATE_ACK:
case S_LCHAN_ACTIVATE_NACK:
break;
default:
return -1;
}
lchan = (struct gsm_lchan *)signal_data;
if (!lchan || !lchan->conn)
return 0;