Skip to content

[V0.8.3] WP-P1+P2: Python-Helfer auf shutil/argv-Listen (#43/#48) #57

Closed

Description

@Toqsick

Issues: #43 + #48 · Verdicts: beide confirmed (Low; #43 latent an Konstantpfaden, #48 Dead Code mit 18 Root-Importen) · Fix-Plan: security-fixplan-42-50.md → WP-P1/P2, eingewebt in Release V0.8.3 (Python-Helfer, Unittest-Gate läuft ohnehin).

WP-P1 — #43: jfiles.copy_file() → shutil.copy2

additional/python/jfiles.py:181: os.system("cp '" + src + "' '" + dst + "'") → shutil.copy2(source_path, destination_path) (Pfade als Daten; Metadaten-Erhalt passt zur Timeshift-Config). Einziger Caller setup_automatic_snapshots.py:9 mit zwei Konstantpfaden (latent). Regressionstest in additional/python/tests/. Upstream-Hinweis an Jean28518/jtools-unix-python (Basti-Task, nicht Commit). Commit: „fix(python): copy timeshift config with shutil instead of a shell command".

WP-P2 — #48: jessentials.download_file()/unzip_file() auf argv-Listen

jessentials.py:166/175-181: URL/Pfade interpoliert in Command-Strings; run_command() macht shlex.split + Popen ohne Shell → Whitespace-Split + Leading-Dash-Option-Injection (CWE-88). Repo-weit 0 Caller (Dead Code), aber 18 Root-Skripte importieren jessentials (latent, LOW). Fix: argv-Listen (Default, statt Dead-Helper löschen), Leading-Dash-Guard/---Separator für link, Unit-Test nach test_command_queue.py-Schema. Upstream-Hinweis wie #43. Commit: „fix(python): invoke wget/unzip with argv lists".

Gates: Python-Unittests + globales CI-Gate-Set.

Activity

  1. Toqsick commented on Oct 23, 2026

    @Toqsick
    OwnerAuthor

    Abnahme — erledigt (WP-P1 + WP-P2)

    Beide Python-Helfer sind auf Daten- statt String-Übergabe umgestellt.

    Work-Package Kriterium Beleg Commit
    WP-P1 (#43) jfiles.copy_file() → shutil.copy2 additional/python/jfiles.py:181-182, Test additional/python/tests/test_jfiles.py 7099c68
    WP-P2 (#48) jessentials.download_file() / unzip_file() → argv-Listen additional/python/jessentials.py:170-186 (mit ---Fence bei wget), Test additional/python/tests/test_jessentials.py 39847ea

    Beide Commits sind in add73e3 (PR #118) gesquasht enthalten. Der Upstream-Hinweis an
    Jean28518/jtools-unix-python bleibt ein Basti-Task und ist kein Commit im MLA-Repo.

    Python-Gate: 58 Tests grün.

    Nachweis: docs/handoff/v0.8.2-xdg-browser-abschluss.md — folgt mit PR #154.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions