gigaset: correct clearing of at_state strings on RING
Subsystems (2)
Karsten Keil
Acked-byIn RING handling, clear the table of received parameter strings in a loop like everywhere else, instead of by enumeration which had already gotten out of sync.
Impact: minor bugfix
Signed-off-by Tilman Schmidt <[email protected]>
Acked-by Karsten Keil <[email protected]>
---
Note to -stable: applies correctly to 2.6.33.
drivers/isdn/gigaset/ev-layer.c | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-)
drivers/isdn/gigaset/ev-layer.c +4 -8
@@ -1258,14 +1258,10 @@ static void do_action(int action, struct cardstate *cs,* note that bcs may be NULL if no B channel is free */ at_state2->ConState =700 ; -kfree (at_state2->str_var[STR_NMBR ]); - at_state2->str_var[STR_NMBR ] =NULL ; -kfree (at_state2->str_var[STR_ZCPN ]); - at_state2->str_var[STR_ZCPN ] =NULL ; -kfree (at_state2->str_var[STR_ZBC ]); - at_state2->str_var[STR_ZBC ] =NULL ; -kfree (at_state2->str_var[STR_ZHLC ]); - at_state2->str_var[STR_ZHLC ] =NULL ; +for (i =0 ; i <STR_NUM ; ++i) { +kfree (at_state2->str_var[i]); + at_state2->str_var[i] =NULL ; + } at_state2->int_var[VAR_ZCTP ] =-1 ;spin_lock_irqsave (&cs->lock, flags);