Skip to content

Commit c835d53

Browse files
committed
fix: add missing error handling for df output parsing in volume collector
1 parent b54841b commit c835d53

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

internal/collectors/volume_collector.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ func (fc *FilesystemCollector) collectFilesystemUsage(filesystem config.Filesyst
207207
// Multi-line format: size is in parts[0], available in parts[2]
208208
if len(parts) >= 3 {
209209
availableKB, parseErr = strconv.ParseInt(parts[2], 10, 64)
210+
} else {
211+
return fmt.Errorf("insufficient fields in multi-line format, expected at least 3, got %d", len(parts))
210212
}
211213
} else {
212214
// Single-line format: size is in parts[1], available in parts[3]
@@ -216,6 +218,11 @@ func (fc *FilesystemCollector) collectFilesystemUsage(filesystem config.Filesyst
216218
return fmt.Errorf("failed to parse size: %w", parseErr)
217219
}
218220
availableKB, parseErr = strconv.ParseInt(parts[3], 10, 64)
221+
if parseErr != nil {
222+
return fmt.Errorf("failed to parse available space in single-line format: %w", parseErr)
223+
}
224+
} else {
225+
return fmt.Errorf("insufficient fields in single-line format, expected at least 4, got %d", len(parts))
219226
}
220227
}
221228

0 commit comments

Comments
 (0)