diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-12-28 22:26:34 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-12-29 09:13:18 +0100 |
commit | a5caba80a98a3441f93d02930c3ff1826f010976 (patch) | |
tree | 0876ce194d99977c13ea37295741f5d2d166c654 | |
parent | 20a6f1ff079c53bf3f7d86f8aa5273b4ede14543 (diff) |
subscr: Fix subscr leaks in the KI code.
-rw-r--r-- | openbsc/src/vty_interface_layer3.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c index b90fac036..5b6300ea0 100644 --- a/openbsc/src/vty_interface_layer3.c +++ b/openbsc/src/vty_interface_layer3.c @@ -541,18 +541,23 @@ DEFUN(ena_subscr_a3a8, minlen = maxlen = A38_COMP128_KEY_LEN; } else { /* Unknown method */ + subscr_put(subscr); return CMD_WARNING; } if (ki_str) { rc = hexparse(ki_str, ainfo.a3a8_ki, sizeof(ainfo.a3a8_ki)); - if ((rc > maxlen) || (rc < minlen)) + if ((rc > maxlen) || (rc < minlen)) { + subscr_put(subscr); return CMD_WARNING; + } ainfo.a3a8_ki_len = rc; } else { ainfo.a3a8_ki_len = 0; - if (minlen) + if (minlen) { + subscr_put(subscr); return CMD_WARNING; + } } rc = db_sync_authinfo_for_subscr( @@ -561,6 +566,7 @@ DEFUN(ena_subscr_a3a8, /* the last tuple probably invalid with the new auth settings */ db_sync_lastauthtuple_for_subscr(NULL, subscr); + subscr_put(subscr); return rc ? CMD_WARNING : CMD_SUCCESS; } |