gigaset: correct clearing of at_state strings on RING

In 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 <tilman@imap.cc>
Acked-by: Karsten Keil <keil@b1-systems.de>
CC: stable@kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Tilman Schmidt 2010-03-14 12:58:05 +00:00 committed by David S. Miller
parent bc35b4e347
commit 3a0a3a6b92

View File

@ -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);