Skip to content

Commit a6e1e43

Browse files
Set timeout for requests to fix security issue
1 parent 273af8a commit a6e1e43

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

plugin/qgistim/core/install_backend.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
import requests
1414

15+
REQUEST_TIMEOUT_SECONDS = 30
16+
1517

1618
def get_gistim_dir() -> Path:
1719
if platform.system() == "Windows":
@@ -23,7 +25,7 @@ def get_gistim_dir() -> Path:
2325

2426
def get_release_assets() -> Dict[str, str]:
2527
GITHUB_URL = "https://api.github.com/repos/deltares/qgis-tim/releases"
26-
response = requests.get(GITHUB_URL)
28+
response = requests.get(GITHUB_URL, timeout=REQUEST_TIMEOUT_SECONDS)
2729
json_content = json.loads(response.content)
2830
last_release = json_content[0]
2931
assets = last_release["assets"]
@@ -45,10 +47,12 @@ def download_assets(assets: Dict[str, str]) -> ZipFile:
4547
)
4648
# Get checksum
4749
checksum_url = assets[f"sha256-checksum-{github_system}.txt"]
48-
checksum_github = requests.get(checksum_url).content.decode("utf-8")
50+
checksum_github = requests.get(
51+
checksum_url, timeout=REQUEST_TIMEOUT_SECONDS
52+
).content.decode("utf-8")
4953
# Get zipfile content
5054
zip_url = assets[f"gistim-{github_system}.zip"]
51-
zipfile_content = requests.get(zip_url).content
55+
zipfile_content = requests.get(zip_url, timeout=REQUEST_TIMEOUT_SECONDS).content
5256
# Compare checksums
5357
sha = hashlib.sha256()
5458
sha.update(zipfile_content)

0 commit comments

Comments
 (0)