fix: check strconv.Atoi and json.Unmarshal errors

short_retrieval.go: Check Atoi error even though regex ensures numeric input. gateway.go: Log warning when gateway config JSON is malformed instead of silently using defaults.
This commit is contained in:
程智超0668000959
2026-06-08 08:52:05 +08:00
parent b9a8fad6fa
commit 8a2c67fe70
2 changed files with 10 additions and 2 deletions
+6 -1
View File
@@ -88,7 +88,12 @@ func ResolveGatewayLogLevel(path string) string {
data, err := os.ReadFile(path)
if err == nil {
_ = json.Unmarshal(data, &cfg)
if err := json.Unmarshal(data, &cfg); err != nil {
logger.WarnCF("config", "failed to parse gateway config, using defaults", map[string]any{
"path": path,
"error": err.Error(),
})
}
}
if envLevel := os.Getenv("PICOCLAW_LOG_LEVEL"); envLevel != "" {
+4 -1
View File
@@ -22,7 +22,10 @@ func ParseLastDuration(s string) (time.Duration, error) {
return 0, fmt.Errorf("invalid duration format: %q (use format like 6h, 7d, 2w, 1m)", s)
}
value, _ := strconv.Atoi(matches[1])
value, err := strconv.Atoi(matches[1])
if err != nil {
return 0, fmt.Errorf("invalid duration value: %q", matches[1])
}
unit := matches[2]
switch unit {