Visitar URL original
donate-cpu: keep extracted package files inside the temp folder by Nussu06 · Pull Request #8973 · cppcheck-opensource/cppcheck · GitHub
Skip to content

donate-cpu: keep extracted package files inside the temp folder - #8973

Open
Nussu06 wants to merge 1 commit into
cppcheck-opensource:mainfrom
Nussu06:donate-cpu-unpack-containment
Open

Nussu06 wants to merge 1 commit into
cppcheck-opensource:mainfrom
Nussu06:donate-cpu-unpack-containment

Conversation

@Nussu06

@Nussu06 Nussu06 commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

unpack_package in tools/donate_cpu_lib.py only skips archive members whose name starts with '/' or '..', so a package tarball containing pkg/../../outside/x.c, or a symlink pkg/inc.h pointing at another directory followed by pkg/inc.h/x.c, writes source files outside work_path/temp when donate-cpu.py, test-my-pr.py or compare-valueflow-options.py unpack it on Python before 3.14 (3.14 refuses these by default, but the uncaught OutsideDestinationError aborts the run). Each member's destination, and the target of symlink and hardlink members, is now resolved with realpath and skipped unless it stays inside the temp folder, and filter='data' is passed where tarfile supports it; links that stay inside the package, such as include/a.h -> ../src/a.h, are still extracted. Added test_unpack_package_outside_temp, which fails on main with Python 3.9 and 3.12 and passes with the fix on 3.9, 3.12 and 3.14, and bumped CLIENT_VERSION to 1.4.1. I don't have Trac access, so could you create a ticket for this? I'll update the title once there is a number.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant