From 779715277ec3e05c2692e86e69e730b5e071df68 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 17 Dec 2024 22:28:17 +1100 Subject: [PATCH] Extract tar files with "data" filter in Python >= 3.12 --- winbuild/build_prepare.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index e702c7014..68abf4ef3 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -7,6 +7,7 @@ import re import shutil import struct import subprocess +import sys from typing import Any @@ -520,7 +521,10 @@ def extract_dep(url: str, filename: str, prefs: dict[str, str]) -> None: if sources_dir_abs != member_prefix: msg = "Attempted Path Traversal in Tar File" raise RuntimeError(msg) - tgz.extractall(sources_dir) + if sys.version_info <= (3, 11): + tgz.extractall(sources_dir) + else: + tgz.extractall(sources_dir, filter="data") else: msg = "Unknown archive type: " + filename raise RuntimeError(msg)