Reject unsafe Windows update cache segments
ci / test (push) Waiting to run
ci / fuzz-smoke (push) Waiting to run
ci / windows-client (push) Waiting to run
ci / package-release (linux-x86_64, ubuntu-latest) (push) Waiting to run
ci / package-release (macos-aarch64, macos-14) (push) Waiting to run
ci / package-release (macos-x86_64, macos-13) (push) Waiting to run
ci / package-release (windows-x86_64, windows-latest) (push) Waiting to run
ci / publish-gitea-release (push) Blocked by required conditions
ci / remote-bench (push) Waiting to run
ci / test (push) Waiting to run
ci / fuzz-smoke (push) Waiting to run
ci / windows-client (push) Waiting to run
ci / package-release (linux-x86_64, ubuntu-latest) (push) Waiting to run
ci / package-release (macos-aarch64, macos-14) (push) Waiting to run
ci / package-release (macos-x86_64, macos-13) (push) Waiting to run
ci / package-release (windows-x86_64, windows-latest) (push) Waiting to run
ci / publish-gitea-release (push) Blocked by required conditions
ci / remote-bench (push) Waiting to run
This commit is contained in:
@@ -276,10 +276,19 @@ function Normalize-PathForCompare($Path) {
|
||||
)
|
||||
}
|
||||
|
||||
function Assert-NoRelativePathSegments($Path) {
|
||||
foreach ($segment in ($Path -split '[\\/]')) {
|
||||
if ($segment -eq "." -or $segment -eq "..") {
|
||||
throw "refusing unsafe update cache path: $Path"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Assert-SafeUpdateCache($Path) {
|
||||
if (-not $Path) {
|
||||
throw "refusing unsafe update cache path: $Path"
|
||||
}
|
||||
Assert-NoRelativePathSegments $Path
|
||||
$full = Normalize-PathForCompare $Path
|
||||
$root = Normalize-PathForCompare ([System.IO.Path]::GetPathRoot($full))
|
||||
$homePath = Normalize-PathForCompare $HOME
|
||||
|
||||
Reference in New Issue
Block a user