Narrow region save payload blocker

This commit is contained in:
Jan Petykiewicz 2026-04-18 11:06:06 -07:00
commit 626ab3a050
2 changed files with 32 additions and 8 deletions

View file

@ -3252,7 +3252,7 @@ pub fn load_save_slice_from_report(
}
if let Some(probe) = &report.save_region_record_triplet_probe {
notes.push(format!(
"Raw save tagged region records also expose {} repeated 0x55f1/0x55f2/0x55f3 triplets in the records span; first name={:?}, first policy lanes=({:.3}, {:.3}, {:.3}), trailing_word={}, first profile collection count={:?}.",
"Raw save tagged region records also expose {} repeated 0x55f1/0x55f2/0x55f3 triplets in the records span; first name={:?}, first policy lanes=({:.3}, {:.3}, {:.3}), trailing_word={}, first profile collection count={:?}, first profile collection trailing_padding_len={:?}.",
probe.record_count,
probe.entries.first().map(|entry| entry.name.as_str()),
probe.entries
@ -3273,6 +3273,9 @@ pub fn load_save_slice_from_report(
.unwrap_or("0x0000"),
probe.entries.first().and_then(|entry| {
entry.profile_collection.as_ref().map(|collection| collection.live_record_count)
}),
probe.entries.first().and_then(|entry| {
entry.profile_collection.as_ref().map(|collection| collection.trailing_padding_len)
})
));
}
@ -3678,7 +3681,7 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
}
if let Some(triplets) = region_record_triplets.as_ref() {
notes.push(format!(
"Region analysis now also exports {} tagged 0x55f1/0x55f2/0x55f3 record triplets; first serialized region name={:?}, first policy lanes=({:.3}, {:.3}, {:.3}), first profile collection count={:?}.",
"Region analysis now also exports {} tagged 0x55f1/0x55f2/0x55f3 record triplets; first serialized region name={:?}, first policy lanes=({:.3}, {:.3}, {:.3}), first profile collection count={:?}, first profile collection trailing_padding_len={:?}.",
triplets.record_count,
triplets.entries.first().map(|entry| entry.name.as_str()),
triplets
@ -3698,6 +3701,9 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
.unwrap_or_default(),
triplets.entries.first().and_then(|entry| {
entry.profile_collection.as_ref().map(|collection| collection.live_record_count)
}),
triplets.entries.first().and_then(|entry| {
entry.profile_collection.as_ref().map(|collection| collection.trailing_padding_len)
})
));
}
@ -10122,6 +10128,15 @@ fn parse_save_region_record_triplet_probe(
profile_collection,
});
}
let zero_trailing_padding_record_count = entries
.iter()
.filter(|entry| {
entry
.profile_collection
.as_ref()
.is_some_and(|collection| collection.trailing_padding_len == 0)
})
.count();
Some(SmpSaveRegionRecordTripletProbe {
profile_family: header_probe.profile_family.clone(),
source_kind: "save-region-record-triplets".to_string(),
@ -10138,6 +10153,10 @@ fn parse_save_region_record_triplet_probe(
),
"each fixed 0x55f2 policy chunk currently decodes as three leading f32 lanes, three reserved dwords, and one trailing u16 word".to_string(),
"the trailing 0x55f3 payload also carries an embedded direct profile collection with fixed 0x22-byte rows on grounded saves".to_string(),
format!(
"on grounded saves the 0x55f3 payload is fully consumed by that embedded profile collection: all {} decoded records currently have zero trailing padding beyond the direct profile rows",
zero_trailing_padding_record_count
),
],
})
}