Skip to content

Commit 9cd16ba

Browse files
committed
fix: guard cmdline truncation independently to prevent panic
In renderBootloaderConfigDiffText, CmdlineTo could be shorter than 77 chars when CmdlineFrom was >80, causing an index out of range panic. Each string is now truncated independently.
1 parent a7cd16b commit 9cd16ba

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

internal/image/imageinspect/renderer_text.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -893,11 +893,15 @@ func renderBootloaderConfigDiffText(w io.Writer, diff *BootloaderConfigDiff, ind
893893
fmt.Fprintf(w, "%s initrd: %s -> %s\n", indent, change.InitrdFrom, change.InitrdTo)
894894
}
895895
if change.CmdlineFrom != change.CmdlineTo {
896-
if len(change.CmdlineFrom) > 80 {
897-
fmt.Fprintf(w, "%s cmdline: %s... -> %s...\n", indent, change.CmdlineFrom[:77], change.CmdlineTo[:77])
898-
} else {
899-
fmt.Fprintf(w, "%s cmdline: %s -> %s\n", indent, change.CmdlineFrom, change.CmdlineTo)
896+
fromCmdline := change.CmdlineFrom
897+
toCmdline := change.CmdlineTo
898+
if len(fromCmdline) > 80 {
899+
fromCmdline = fromCmdline[:77] + "..."
900900
}
901+
if len(toCmdline) > 80 {
902+
toCmdline = toCmdline[:77] + "..."
903+
}
904+
fmt.Fprintf(w, "%s cmdline: %s -> %s\n", indent, fromCmdline, toCmdline)
901905
}
902906
}
903907
}

0 commit comments

Comments
 (0)