settings: Fix out of bounds index (#41227)

Fixes ZED-2J8

Release Notes:

- N/A *or* Added/Fixed/Improved ...
This commit is contained in:
Lukas Wirth 2025-10-26 13:57:44 +01:00 committed by GitHub
parent 2471ae451c
commit 61e4a1d16a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -727,15 +727,11 @@ pub fn to_pretty_json(
indent_size: usize, indent_size: usize,
indent_prefix_len: usize, indent_prefix_len: usize,
) -> String { ) -> String {
const SPACES: [u8; 32] = [b' '; 32];
debug_assert!(indent_size <= SPACES.len());
debug_assert!(indent_prefix_len <= SPACES.len());
let mut output = Vec::new(); let mut output = Vec::new();
let indent = " ".repeat(indent_size);
let mut ser = serde_json::Serializer::with_formatter( let mut ser = serde_json::Serializer::with_formatter(
&mut output, &mut output,
serde_json::ser::PrettyFormatter::with_indent(&SPACES[0..indent_size.min(SPACES.len())]), serde_json::ser::PrettyFormatter::with_indent(indent.as_bytes()),
); );
value.serialize(&mut ser).unwrap(); value.serialize(&mut ser).unwrap();
@ -744,7 +740,7 @@ pub fn to_pretty_json(
let mut adjusted_text = String::new(); let mut adjusted_text = String::new();
for (i, line) in text.split('\n').enumerate() { for (i, line) in text.split('\n').enumerate() {
if i > 0 { if i > 0 {
adjusted_text.push_str(str::from_utf8(&SPACES[0..indent_prefix_len]).unwrap()); adjusted_text.extend(std::iter::repeat(' ').take(indent_prefix_len));
} }
adjusted_text.push_str(line); adjusted_text.push_str(line);
adjusted_text.push('\n'); adjusted_text.push('\n');