mirror of
https://github.com/lukaszraczylo/traefikoidc.git
synced 2026-10-17 04:37:48 +00:00
Potential fix for code scanning alert no. 10: Size computation for allocation may overflow
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
parent
e453a15922
commit
e56e90f40b
+12
@@ -255,6 +255,18 @@ func (c *RedisConn) Do(command string, args ...string) (interface{}, error) {
|
|||||||
if argsLen < 0 || argsLen > maxSafeArgs {
|
if argsLen < 0 || argsLen > maxSafeArgs {
|
||||||
return nil, errors.New("too many arguments")
|
return nil, errors.New("too many arguments")
|
||||||
}
|
}
|
||||||
|
const maxTotalArgBytes = 64 << 20 // 64 MiB max total size
|
||||||
|
totalBytes := len(command)
|
||||||
|
for _, s := range args {
|
||||||
|
// Protect against possible overflow
|
||||||
|
if len(s) > maxTotalArgBytes-totalBytes {
|
||||||
|
return nil, errors.New("arguments too large (would overflow maximum allowed total size)")
|
||||||
|
}
|
||||||
|
totalBytes += len(s)
|
||||||
|
if totalBytes > maxTotalArgBytes {
|
||||||
|
return nil, errors.New("total argument size exceeds maximum allowed")
|
||||||
|
}
|
||||||
|
}
|
||||||
cmdArgs := make([]string, 0, argsLen+1)
|
cmdArgs := make([]string, 0, argsLen+1)
|
||||||
cmdArgs = append(cmdArgs, command)
|
cmdArgs = append(cmdArgs, command)
|
||||||
cmdArgs = append(cmdArgs, args...)
|
cmdArgs = append(cmdArgs, args...)
|
||||||
|
|||||||
Reference in New Issue
Block a user