github.com/n00py/Slackor@v0.0.0-20200610224921-d007fcea1740/impacket/tests/ImpactPacket/test_TCP_bug_issue7.py (about) 1 #!/usr/bin/env python 2 # sorry, this is very ugly, but I'm in python 2.5 3 import sys 4 sys.path.insert(0,"../..") 5 6 from impacket.ImpactPacket import TCP, ImpactPacketException 7 import unittest 8 from threading import Thread 9 10 class TestTCP(unittest.TestCase): 11 12 def setUp(self): 13 # Dummy TCP header with "Maximum Segment Size" Option and zero length 14 self.frame = '\x12\x34\x00\x50\x00\x00\x00\x01\x00\x00\x00\x00\x60\x00\x00\x00\x8d\x5c\x00\x00\x02\x00\x00\x00' 15 16 def test_01(self): 17 'Test TCP options parsing hangs' 18 class it_hangs(Thread): 19 def __init__(self): 20 Thread.__init__(self) 21 def run(self): 22 try: 23 frame = '\x12\x34\x00\x50\x00\x00\x00\x01\x00\x00\x00\x00' \ 24 '\x60\x00\x00\x00\x8d\x5c\x00\x00\x02\x00\x00\x00' 25 tcp = TCP(frame) 26 except ImpactPacketException as e: 27 if str(e) != "'TCP Option length is too low'": 28 raise e 29 except: 30 pass 31 32 thread_hangs = it_hangs() 33 thread_hangs.setDaemon(True) 34 thread_hangs.start() 35 36 thread_hangs.join(1.0) # 1 seconds timeout 37 self.assertEqual(thread_hangs.isAlive(), False) 38 #if thread_hang.isAlive(): 39 40 41 suite = unittest.TestLoader().loadTestsFromTestCase(TestTCP) 42 unittest.TextTestRunner(verbosity=1).run(suite)