1 | 1 | | # Copyright (c) Microsoft Corporation. |
2 | 2 | | # Licensed under the MIT License. |
| 3 | + | import traceback |
| 4 | + | import re |
| 5 | + | import sys |
3 | 6 | | |
4 | 7 | | from commands.basecommand import BaseCommand |
5 | 8 | | from nvd import CVEValidator |
6 | | - | import re |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | class Version(BaseCommand): |
| skipped 4 lines |
14 | 16 | | version = '' |
15 | 17 | | res = '' |
16 | 18 | | data = self._ssh_data(sshc, '/system resource print') |
17 | | - | version_reg = re.search(r'version: ([\d\.]+)', data) |
| 19 | + | |
| 20 | + | try: |
| 21 | + | version_reg = re.search(r'version: ([\d\.]+)', data) |
18 | 22 | | |
19 | | - | if version_reg: |
20 | | - | version = version_reg.group(1) |
21 | | - | res = f'The Mikrotik version: {version}' |
| 23 | + | if version_reg: |
| 24 | + | version = version_reg.group(1) |
| 25 | + | res = f'The Mikrotik version: {version}' |
| 26 | + | except Exception: |
| 27 | + | print(traceback.format_exc()) |
22 | 28 | | |
23 | 29 | | sus_dns, recommendation = self.check_results_ssh(version) |
24 | 30 | | |
| skipped 5 lines |
30 | 36 | | sus_version = [] |
31 | 37 | | recommendation = [] |
32 | 38 | | |
33 | | - | if res: |
34 | | - | cve = CVEValidator('./assets/mikrotik_cpe_match.json') |
35 | | - | ver_cves = cve.check_version(res) |
36 | | - | if ver_cves: |
37 | | - | sus_version = ver_cves |
| 39 | + | try: |
| 40 | + | if res: |
| 41 | + | cve = CVEValidator('./assets/mikrotik_cpe_match.json') |
| 42 | + | ver_cves = cve.check_version(res) |
| 43 | + | if ver_cves: |
| 44 | + | sus_version = ver_cves |
| 45 | + | except Exception: |
| 46 | + | print(traceback.format_exc(), file = sys.stderr) |
38 | 47 | | |
39 | 48 | | return sus_version, recommendation |
40 | 49 | | |
| skipped 3 lines |