aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-08 10:00:16 +0000
committerGravatar Runxi Yu2026-06-08 10:00:16 +0000
commit4d70bf2530e616dabb077675822b42124076970b (patch)
tree3da883356f235f6bcc9698e82459d2ac05d05b6c
parentinternal/iolimit: Safe integer conversions (diff)
signatureNo signature
internal/iolimit: More integer conversions
-rw-r--r--internal/iolimit/capped_capture_writer.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/internal/iolimit/capped_capture_writer.go b/internal/iolimit/capped_capture_writer.go
index 1852836e..e4a64590 100644
--- a/internal/iolimit/capped_capture_writer.go
+++ b/internal/iolimit/capped_capture_writer.go
@@ -1,6 +1,11 @@
package iolimit
-import "bytes"
+import (
+ "bytes"
+ "fmt"
+
+ "lindenii.org/go/lgo/intconv"
+)
// CappedCaptureWriter captures written bytes up to a fixed limit.
//
@@ -25,7 +30,11 @@ func (writer *CappedCaptureWriter) Write(src []byte) (int, error) {
return len(src), nil
}
- used := uint64(writer.buf.Len())
+ used, err := intconv.IntToUint64(writer.buf.Len())
+ if err != nil {
+ return 0, fmt.Errorf("iolimit: %w", err)
+ }
+
if used >= writer.limit {
writer.full = true
@@ -34,7 +43,12 @@ func (writer *CappedCaptureWriter) Write(src []byte) (int, error) {
room := writer.limit - used
if uint64(len(src)) > room {
- _, _ = writer.buf.Write(src[:int(room)])
+ take, err := intconv.Uint64ToInt(room)
+ if err != nil {
+ return 0, fmt.Errorf("iolimit: %w", err)
+ }
+
+ _, _ = writer.buf.Write(src[:take])
writer.full = true
return len(src), nil