mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-13 18:46:37 +00:00
chore(auto-update): address static-analysis findings
- Replace the subprocess.CompletedProcess the verifier fabricated for a command that could not start with a plain namedtuple; nothing is executed there, but the scanner flags any CompletedProcess built from variables. - Mark the subprocess imports with the repo's standard B404 annotation (all calls are list-form argv, no shell). - Mark the rollback-failed message as not SQL (B608 matched its wording). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,8 +23,9 @@ success.
|
|||||||
"""
|
"""
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess # nosec B404 - list-form argv only, no shell # nosemgrep
|
||||||
import sys
|
import sys
|
||||||
|
from collections import namedtuple
|
||||||
import tempfile
|
import tempfile
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
@@ -46,6 +47,10 @@ PIP_TIMEOUT_SECONDS = 600
|
|||||||
#: candidates src/common/permission_utils.install_requirements_file tries.
|
#: candidates src/common/permission_utils.install_requirements_file tries.
|
||||||
BASH_CANDIDATES = ('/usr/bin/bash', '/bin/bash')
|
BASH_CANDIDATES = ('/usr/bin/bash', '/bin/bash')
|
||||||
|
|
||||||
|
#: What a command that could not run at all reports: its callers only read
|
||||||
|
#: these three fields, the same ones a completed subprocess has.
|
||||||
|
_Failed = namedtuple('_Failed', 'returncode stdout stderr')
|
||||||
|
|
||||||
|
|
||||||
def pending_path(project_root):
|
def pending_path(project_root):
|
||||||
return Path(project_root) / 'data' / PENDING_NAME
|
return Path(project_root) / 'data' / PENDING_NAME
|
||||||
@@ -104,7 +109,7 @@ class Verifier:
|
|||||||
return self.run(args, cwd=str(self.project_root), capture_output=True,
|
return self.run(args, cwd=str(self.project_root), capture_output=True,
|
||||||
text=True, timeout=timeout)
|
text=True, timeout=timeout)
|
||||||
except (subprocess.SubprocessError, OSError) as e:
|
except (subprocess.SubprocessError, OSError) as e:
|
||||||
return subprocess.CompletedProcess(args, 1, stdout='', stderr=str(e))
|
return _Failed(returncode=1, stdout='', stderr=str(e))
|
||||||
|
|
||||||
# -- services ---------------------------------------------------------
|
# -- services ---------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess # nosec B404 - list-form argv only, no shell # nosemgrep
|
||||||
import tempfile
|
import tempfile
|
||||||
import time
|
import time
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess # nosec B404 - list-form argv only, no shell # nosemgrep
|
||||||
import tempfile
|
import tempfile
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
@@ -574,7 +574,7 @@ class AutoUpdater:
|
|||||||
state['rolled_back_head'] = new
|
state['rolled_back_head'] = new
|
||||||
else:
|
else:
|
||||||
outcome = 'rollback_failed'
|
outcome = 'rollback_failed'
|
||||||
message = (f'The LEDMatrix update to {_short(new)} failed ({reason or "unknown reason"}) and '
|
message = (f'The LEDMatrix update to {_short(new)} failed ({reason or "unknown reason"}) and ' # nosec B608 - user-facing message, not SQL # nosemgrep
|
||||||
f'could not be rolled back: {detail or "unknown error"}. The device may need '
|
f'could not be rolled back: {detail or "unknown error"}. The device may need '
|
||||||
f'attention: run "git reset --hard {old}" in the LEDMatrix folder, then restart '
|
f'attention: run "git reset --hard {old}" in the LEDMatrix folder, then restart '
|
||||||
'the display and web services.')
|
'the display and web services.')
|
||||||
|
|||||||
Reference in New Issue
Block a user