personal-server-community / pschecker

Simple security audit script for your personal server
GNU General Public License v3.0
12 stars 3 forks source link

Fix python3 case where bytes are returned #10

Closed ldvc closed 6 years ago

ldvc commented 6 years ago

Problem

Python3 returns bytes objects:

Traceback (most recent call last):
  File "/root/.virtualenvs/venv_pschecker/bin/pschecker", line 11, in <module>
    sys.exit(cli())
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/pschecker/cli.py", line 24, in cli
    run_diagnostic(config)
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/pschecker/cli.py", line 47, in run_diagnostic
    check_runner.run_check(config)
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/pschecker/checks/firewall.py", line 17, in run_check
    is_firewall_up = check_ufw()
  File "/root/.virtualenvs/venv_pschecker/lib/python3.5/site-packages/pschecker/checks/firewall.py", line 33, in check_ufw
    "Status" in lines[0] and \
TypeError: a bytes-like object is required, not 'str'

Solution

Check subprocess output and convert if needed.

gelnior commented 6 years ago

Thank you!