summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/recordline/recordline.go10
-rw-r--r--internal/recordline/recordline_test.go17
2 files changed, 14 insertions, 13 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 {
diff --git a/internal/recordline/recordline_test.go b/internal/recordline/recordline_test.go
index 4fcc152..80eb955 100644
--- a/internal/recordline/recordline_test.go
+++ b/internal/recordline/recordline_test.go
@@ -54,17 +54,12 @@ func TestParse(t *testing.T) {
},
true,
},
- {
- "abc:def:Linux 6.5.0",
- Fields{
- Uptime: 0,
- BootTime: 0,
- OS: "Linux 6.5.0",
- KernelName: "Linux",
- KernelMajor: "Linux 6...",
- },
- true,
- },
+ {"abc:def:Linux 6.5.0", Fields{}, false},
+ {"abc:1700000000:Linux 6.5.0", Fields{}, false},
+ {"12345:def:Linux 6.5.0", Fields{}, false},
+ {":1:Linux", Fields{}, false},
+ {"1::Linux", Fields{}, false},
+ {" 0x10:1:Linux", Fields{}, false},
{"", Fields{}, false},
{" ", Fields{}, false},
{"only:two", Fields{}, false},