aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/tests
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-04-07 17:49:49 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2015-04-07 20:13:53 +0200
commit322b1499cd4d34b0148a15cb615ad6dff8203ed2 (patch)
tree3e59f707bc5cb26eb4f258bb033c6615757527a5 /openbsc/tests
parent5b512051870017aebd79ff2ca05ad8be671728b2 (diff)
nitb: Check source string length before calling strncpy (Coverity)
Currently some VTY command do neither check the length of the source string before calling strncpy nor ensure NUL-termination afterwards. This can to destination string buffers whose contents are not NUL-teminated. This commit adds checks and corresponding warnings to the VTY commands 'subscriber TYPE ID name .NAME" and "subscriber TYPE ID extension EXTENSION". Fixes: Coverity CID 1206570, 1206569 Sponsored-by: On-Waves ehf
Diffstat (limited to 'openbsc/tests')
-rw-r--r--openbsc/tests/vty_test_runner.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/openbsc/tests/vty_test_runner.py b/openbsc/tests/vty_test_runner.py
index 2b7fd1969..fb4ca7d1a 100644
--- a/openbsc/tests/vty_test_runner.py
+++ b/openbsc/tests/vty_test_runner.py
@@ -286,6 +286,32 @@ class TestVTYNITB(TestVTYGenericBSC):
res = self.vty.command('show subscriber imsi '+imsi)
self.assert_(res != '% No subscriber found for imsi '+imsi)
+ def testSubscriberSettings(self):
+ self.vty.enable()
+
+ imsi = "204300854013739"
+ wrong_imsi = "204300999999999"
+
+ # Lets create one
+ res = self.vty.command('subscriber create imsi '+imsi)
+ self.assert_(res.find(" IMSI: "+imsi) > 0)
+
+ self.vty.verify('subscriber imsi '+wrong_imsi+' name wrong', ['% No subscriber found for imsi '+wrong_imsi])
+ res = self.vty.command('subscriber imsi '+imsi+' name '+('X' * 160))
+ self.assert_(res.find("NAME is too long") > 0)
+
+ self.vty.verify('subscriber imsi '+imsi+' name '+('G' * 159), [''])
+
+ self.vty.verify('subscriber imsi '+wrong_imsi+' extension 840', ['% No subscriber found for imsi '+wrong_imsi])
+ res = self.vty.command('subscriber imsi '+imsi+' extension '+('9' * 15))
+ self.assert_(res.find("EXTENSION is too long") > 0)
+
+ self.vty.verify('subscriber imsi '+imsi+' extension '+('1' * 14), [''])
+
+ # Delete it
+ res = self.vty.command('subscriber delete imsi '+imsi)
+ self.assert_(res != "")
+
def testShowPagingGroup(self):
res = self.vty.command("show paging-group 255 1234567")
self.assertEqual(res, "% can't find BTS 255")