summaryrefslogtreecommitdiff
path: root/internal/recordline/recordline.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-14 11:09:04 +0300
committerPaul Buetow <paul@buetow.org>2026-04-14 11:09:04 +0300
commit75cc707dd049c52b82ff4e4d9ee4639cbabed9d1 (patch)
tree352fd16d0e24422126fdd7c57e89de4e565122c5 /internal/recordline/recordline.go
parentf143b6daca50eba520ceaec51c36222ab6ae667d (diff)
recordline: reject invalid uptime/bootTime (s3)
Return ok=false when strconv.ParseUint fails instead of using zero values. Add tests for non-numeric and empty numeric fields. Made-with: Cursor
Diffstat (limited to 'internal/recordline/recordline.go')
-rw-r--r--internal/recordline/recordline.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/internal/recordline/recordline.go b/internal/recordline/recordline.go
index 940f235..077fa35 100644
--- a/internal/recordline/recordline.go
+++ b/internal/recordline/recordline.go
@@ -22,8 +22,14 @@ func Parse(line string) (Fields, bool) {
if len(parts) != 3 {
return Fields{}, false
}
- uptime, _ := strconv.ParseUint(parts[0], 10, 64)
- bootTime, _ := strconv.ParseUint(parts[1], 10, 64)
+ uptime, err := strconv.ParseUint(parts[0], 10, 64)
+ if err != nil {
+ return Fields{}, false
+ }
+ bootTime, err := strconv.ParseUint(parts[1], 10, 64)
+ if err != nil {
+ return Fields{}, false
+ }
osStr := parts[2]
kernelName := osStr
if i := strings.Index(osStr, " "); i > 0 {