From 1a0a4f5e07f90c06f9c60013f2a44edfd8b0a1f8 Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Mon, 21 Jul 2025 15:05:14 -0400 Subject: [PATCH] fix(non-interactive): check bounds when reading message bytes --- internal/app/app.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/app/app.go b/internal/app/app.go index 654cb87ca643530eb030195f5b45679ee18af8e6..ce739991b2cdfc5132f92f4ab8eb3509a109df53 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -160,8 +160,12 @@ func (app *App) RunNonInteractive(ctx context.Context, prompt string, quiet bool return fmt.Errorf("agent processing failed: %w", result.Error) } - part := result.Message.Content().String()[readBts:] - fmt.Println(part) + msgContent := result.Message.Content().String() + if len(msgContent) < readBts { + // XXX: Log accordingly? + return fmt.Errorf("message content is shorter than read bytes: %d < %d", len(msgContent), readBts) + } + fmt.Println(msgContent[readBts:]) slog.Info("Non-interactive run completed", "session_id", sess.ID) return nil